matplotlib绘图过程标签太长导致图像显示不全怎么办
Admin 2022-08-04 群英技术资讯 592 次浏览
本篇博客主要解决在使用pandas
绘制图像并保存时,由于标签太长,导致坐标轴上的标签显示不全的问题。刚遇到问题时调整了一下图片大小,然鹅并没有卵用,于是乎就检索了一下问题,发现没有解决pandas
的。查询无果后,查看了一下官方文档,顿悟,这不就是matplotlib
嘛,换了一个关键字再查询,果然,就是。所以本篇同样适用于解决matplotlib
绘制图像时出现的这个问题。
# 部分代码 df_sparsity = distiller.weights_sparsity_summary(resnet20) df_sparsity_tmp = df_sparsity[['NNZ (dense)', 'NNZ (sparse)']] ax = df_sparsity_tmp.iloc[0:-1].plot(kind='bar', figsize=[30,10], title="Sparse vs. Dense\n(element-wise)") ax.set_xticklabels(df_sparsity.Name, rotation=90) fig = ax.get_figure() fig.savefig('output.png')
使用pandas
的DataFrame
存储数据并绘制图像,横坐标轴的标签是ResNet20
的各个layer
的名字,像module.layer1.0.conv1.weight
这样,由于太长,导致绘制出来的图像是这样的:
坐标轴的标签没有显示全,于是就尝试改变图像的大小:
# 改变下高度 ax = df_sparsity_tmp.iloc[0:-1].plot(kind='bar', figsize=[30,50], title="Sparse vs. Dense\n(element-wise)")
于是图像就变成了下面这样,虽然有效果,但图片被拉长,依旧不美观:
既然调整绘制图像尺寸之后绘制出来的图片依旧不符合预期,那就只能看看官方的文档了----pandas.DataFrame.plot(),看看是不是还有其他参数,能够使图像的大小及位置不变,坐标轴的绘制空间适当调整。然后就发现了这个:
函数返回了一个matplotlib.axes.Axes
,既然是matlitplot
,那问题就很容易解决了,matplotlib
老搞这样的事。查看一下matplotlib
的文档----matplotlib.pyplot.savefig(),可以看到:
默认情况下,仅保存图形给定的部分,如果设置为tight
,将尝试保存更紧致的图形。
在保存图形是加入bbox_inches
参数:
# 设置tight bbox fig.savefig('output.png', bbox_inches='tight')
再次保存图形,此时的就很ok了:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python如何获取多线程返回结果,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
简单来说,K-近邻算法采用测量不同特征值之间的距离方法进行分类;优点:精度高、对异常值不敏感、无数据输入假定;缺点:计算复杂度高、空间复杂度高
这篇文章主要介绍了python 中raise用法,Python 允许我们在程序中手动设置异常,就是使用raise 语句来实现,下面我们就来看看raise的具体用法,文章内容介绍详细,具有一定的参考价值,需要的小伙伴可以参考一下
这篇文章主要给大家分享如何Python实现索引排序功能,小编觉得是比较有意思的,因此与大家分享一下,下面我们就一起来看看具体的实现吧。
一个图片里边绘制多个图像是绘图中的常见需求,下面这篇文章主要给大家介绍了关于python绘制子图技巧之plt.subplot、plt.subplots及坐标轴修改的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008