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. 问题描述

使用pandasDataFrame存储数据并绘制图像,横坐标轴的标签是ResNet20的各个layer的名字,像module.layer1.0.conv1.weight这样,由于太长,导致绘制出来的图像是这样的:

Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决

坐标轴的标签没有显示全,于是就尝试改变图像的大小:

# 改变下高度
ax = df_sparsity_tmp.iloc[0:-1].plot(kind='bar', figsize=[30,50], title="Sparse vs. Dense\n(element-wise)")

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

Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决

2. 问题原因

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

Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决

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

Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决

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

4. 解决方法

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

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

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

Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决

来源:https://blog.csdn.net/qq_42730750/article/details/120743817

标签:pandas,matplotlib,图形
0
投稿

猜你喜欢

  • Thinkphp微信公众号支付接口

    2024-05-11 09:16:51
  • MySQL操作符(and、or、in、not)的具体使用

    2024-01-17 22:46:44
  • Python中的高级函数map/reduce使用实例

    2021-11-07 06:57:23
  • python实现键盘控制鼠标移动

    2022-09-27 04:55:41
  • Python企业编码生成系统总体系统设计概述

    2021-03-31 09:12:19
  • Python pymysql模块安装并操作过程解析

    2024-01-19 16:05:39
  • Python首次安装后运行报错(0xc000007b)的解决方法

    2023-12-15 12:33:49
  • Python二进制串转换为通用字符串的方法

    2022-09-30 19:36:11
  • 在DOS界面如何运行python的py文件

    2022-05-01 16:39:33
  • bootstrap 通过加减按钮实现输入框组功能

    2024-04-16 09:26:06
  • python创建临时文件夹的方法

    2022-02-13 21:51:35
  • 在Python中使用Mako模版库的简单教程

    2021-11-08 12:33:45
  • Python使用PIL模块生成随机验证码

    2022-03-05 21:54:11
  • Python排序搜索基本算法之归并排序实例分析

    2023-10-19 04:15:11
  • 自动生成文章摘要的代码[JavaScript 版本]

    2024-04-30 09:52:16
  • Python应用库大全总结

    2023-05-14 01:57:19
  • Python Playwright 文本框操作技巧

    2023-01-15 20:59:21
  • css学习笔记:div在IE6下无法遮盖select

    2009-04-30 13:21:00
  • js正则的几个基本概念

    2007-09-30 20:02:00
  • 全面解析Bootstrap表单使用方法(表单按钮)

    2024-05-10 14:08:49
  • asp之家 网络编程 m.aspxhome.com