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
猜你喜欢
- <HTML><HEAD><TITLE>SQL Server 数据库的备份
- 如何用ADO批量更新记录?是的,ADO有这项功能,不过好像用的人不太多(不了解还是不会用呢?):<HTML> &nbs
- MySQL字符集出错的解决方法:错误案例: Illegal mix of collations (gbk_chinese_ci,I
- 目录:分析和设计组件编码实现和算法用 Ant 构建组件测试 JavaScript 组件本期,我们要讨论的话题是 JavaScript 的测试
- 刚才帮一位朋友做跳转的时候做的,为了获取完整的url地址,还是花了那么点时间不过现在看来,原来是那么简单,没有网上那么多复杂的东东,相信一定
- 在web开发中经常遇到多关键词对对单个字段查询,我一般是通过动态数组来实现的。当然多个关键词的一般是用空格或,隔开,我这几假设多个关键词用空
- 加上设置字符编码的方法:response.setHeader("charset","gb2312")
- 使用 types 增强vscode中javascript代码提示功能微软的vscode编辑器是开发typescript项目的不二首选,其本身
- Css tranistions允许元素的属性在单位时间内发生平滑的过渡,在阅读完《CSS Transitions Module Level
- Oracle Tips, Tricks & Scripts1. Topic: Compiling Invalid Objects:O
- 在Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离
- 具体用法:1、<%= Counters.Get(CounterName) %>显示计数器的值。2、<% counterva
- CSS网页布局开发中,会有很多小技巧,这里再扩展一下您所想要得到的知识,相信您会有很多收获!一、ul标签在Mozilla中默认是有paddi
- 1、可以在mode参数中添加'b'字符。所有适合文件对象的相同方法。然而,每种方法都希望并返回一个bytes对象。>&
- 通常我们做网站,设计版面布局是第一步,如何做到版面布局具有创意又美观大方呢?这就需要一定的版面处理功底。让我们先来了解一下版面布局的步骤:一
- 阅读上一篇:FrontPage2002简明教程三:网页布局 网页的强大之处就在它的超链接,在浏览器中通过点击网页中的超链接,可以很方便地打开
- 有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间
- 现在介绍加速网页图形显示速度的六种方法,为你解决这个难题。其最基本的宗旨就是,让你用买鱼的价钱,品尝到熊掌的美味和营养。 1.首先要确定图像
- 今天想围绕“产品交互设计”说说一些我们的想法,一说到产品设计,我想在坐的各位脑海里肯定联想到了很多表单设计、导航设计、界面布局等等,但是今天
- 背景在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MS SQL Server和Oracle对数据库事务处理的