matplotlib绘图过程标签太长导致图像显示不全怎么办

Admin 2022-08-04 群英技术资讯 592 次浏览

这篇文章主要讲解了“matplotlib绘图过程标签太长导致图像显示不全怎么办”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。

前言

本篇博客主要解决在使用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')

1. 问题描述

使用pandasDataFrame存储数据并绘制图像,横坐标轴的标签是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)")

于是图像就变成了下面这样,虽然有效果,但图片被拉长,依旧不美观:

2. 问题原因

既然调整绘制图像尺寸之后绘制出来的图片依旧不符合预期,那就只能看看官方的文档了----pandas.DataFrame.plot(),看看是不是还有其他参数,能够使图像的大小及位置不变,坐标轴的绘制空间适当调整。然后就发现了这个:

函数返回了一个matplotlib.axes.Axes,既然是matlitplot,那问题就很容易解决了,matplotlib老搞这样的事。查看一下matplotlib的文档----matplotlib.pyplot.savefig(),可以看到:

默认情况下,仅保存图形给定的部分,如果设置为tight,将尝试保存更紧致的图形。

4. 解决方法

在保存图形是加入bbox_inches参数:

	# 设置tight bbox
	fig.savefig('output.png', bbox_inches='tight')

再次保存图形,此时的就很ok了:

结束语


感谢各位的阅读,以上就是“matplotlib绘图过程标签太长导致图像显示不全怎么办”的内容了,经过本文的学习后,相信大家对matplotlib绘图过程标签太长导致图像显示不全怎么办都有更深刻的体会了吧。这里是群英网络,小编将为大家推送更多相关知识点的文章,欢迎关注! 群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服