Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决
作者:夏小悠 发布时间:2023-07-22 20:03:09
前言
本篇博客主要解决在使用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. 问题描述
使用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)")
于是图像就变成了下面这样,虽然有效果,但图片被拉长,依旧不美观:
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了:
来源:https://blog.csdn.net/qq_42730750/article/details/120743817


猜你喜欢
- 本文实例讲述了python清除字符串里非字母字符的方法。分享给大家供大家参考。具体如下:s = "hello world! how
- 使用非常简单,小伙伴们只要修改对应的参数即可,这里就不多废话了,直接奉上实例吧。<div class="txt1"
- strip()方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本。语法以下是strip()方法的语法
- 1.创建xml字段在表xmlTest内创建一个字段,命名_x,设置数据类型为xml。2.写入xmlinsert into xmlTest (
- 实测mysqld –skip-grant-tables这样的命令行,在mysql8中无法成功启动,而且测试了该参数放在ini文件里面也同样无
- 编程中有时候需要一个初始极大值(或极小值)作为temp,当然可以自定义设置为10000(whatever),不过python中有一个值可以代
- 使用Python时,常遇到的一个问题就是Python和库的版本不同。Anaconda的env算是解决这个问题的一个好用的方法。但是,在使用J
- 1、数据库--所有数据库的大小 exec sp_helpdb --所有数据库的状态 sel
- 以下内容是针对安装tensorflow-CPU版本的。tensorflow已经支持Python3.8版本的安装。可以查看自己的Python版
- php数组中元素的存在方式是以键值对的方式('key'=>'value'),有时候我们需要根据键删除数
- 出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-
- 现在拥有了正则表达式这把神兵利器,我们就可以进行对爬取到的全部网页源代码进行筛选了。下面我们一起尝试一下爬取内涵段子网站:http://ww
- <input name="a" type="checkbox"
- 1、 二叉树的构建我们都知道二叉搜索树的特点是:当前节点的值大于它的左子树的值,小于等于右子树的值。所以我们这里可以通过迭代的方式构建二叉搜
- 基于微信开放的个人号接口python库itchat,实现对微信好友的获取,并对省份、性别、微信签名做数据分析。效果:直接上代码,建三个空文本
- 本文实例讲述了Python图像的增强处理操作。分享给大家供大家参考,具体如下:python中PIL模块中有一个叫做ImageEnhance的
- 初识项目打开VS2015,创建Web项目,选择ASP.NET Web Application,在弹出的窗口里选择ASP.NET 5 Webs
- 本文实例讲述了PHP面向对象程序设计类的定义与用法。分享给大家供大家参考,具体如下:<?phpclass Person {  
- 最近一直在用TF做CNN的图像分类,当softmax层得到预测结果后,我希望能够看到预测结果,以便和标签之间进行比较。特此补上,以便自己记忆
- 之前使用smarty的时候,通常是在php程序端读取数据(一般从数据库),然后assign给模板的变量,才可以在前端使用这个变量。这样不是不