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

文章目录

*
前言
1. 问题描述
2. 问题原因
4. 解决方法
结束语

前言

本篇博客主要解决在使用 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参数:


    fig.savefig('output.png', bbox_inches='tight')

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

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

结束语

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

Original: https://blog.csdn.net/qq_42730750/article/details/120743817
Author: 夏小悠
Title: 解决Pandas/Matplotlib保存图形时坐标轴标签太长导致显示不全的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765030/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 爬虫日记(69):Scrapy的CrawlSpider使用

    在开发爬虫的过程中,经常会遇到非常规则的网站,只需要一条或几条规则就可以把整个网站的内容收集到了。对于这样的网站,我们就可以采用更加简单的方法,就是采用CrawlSpider类作为…

    Python 2023年10月6日
    042
  • 妙不可言,Python 可视化竟可以这么玩啊

    今天我来为大家分享一个有趣的可视化技巧,如何从图片中提取颜色然后绘制成可视化图表, 如下图所示,喜欢记得收藏、关注、点赞。 注:完整版代码、技术交流文末获取 在示例照片当中有着各种…

    Python 2023年9月2日
    071
  • Python+Django+Requests+Pytest+Alure测试框架设计思路

    文章目录 项目背景 设计思路 项目结构 设计原则 关于登录接口 项目执行顺序 项目实践 项目背景 项目是一个传统的web端,技术架构采用jsp架构。基于这种项目架构,项目已经有UI…

    Python 2023年9月13日
    066
  • Django系列3 — 快速部署开发环境

    快速部署Django开发环境 1、卸载python 2、Python3.8 安装 3、Pycharm 安装 4、Django 安装(虚拟环境) 5、Mysql 安装 * 5.1 安…

    Python 2023年8月5日
    066
  • Python实现简繁体转换,现在的人玩得老花了

    1、opencc-python 首先介绍opencc中的Python实现库,它具有安装简单,翻译准确,使用方便等优点。对于我们日常的需求完全能够胜任。 ; 1.1安装opencc-…

    Python 2023年11月2日
    032
  • 带您了解昇腾模型压缩工具

    摘要:昇腾模型压缩工具是一个针对昇腾芯片亲和的深度学习模型压缩工具包,提供量化、张量分解等多种模型压缩特性,致力于帮助用户高效实现模型的小型化。 本文分享自华为云社区《【CANN文…

    Python 2023年10月25日
    041
  • Pandas库——DataFrame入门

    文章目录 * – 一.简介 – 二.创建 – + 1.python字典型 + 2.嵌套list/numpy的多维数组 + 3.文件读取 &#82…

    Python 2023年8月7日
    050
  • 跟我学Python图像处理丨带你入门OpenGL

    摘要:介绍Python和OpenGL的入门知识,包括安装、语法、基本图形绘制等。 一.OpenGL入门知识 OpenGL(Open Graphics Library,译为&#822…

    Python 2023年10月24日
    046
  • SpringMVC 02: SpringMVC响应get和post请求 + 5种获取前端数据的方式

    响应get和post请求 SpringMVC中使用@RequestMapping注解完成对get请求和post请求的响应 项目结构和配置文件与SpringMVC博客集中的&#822…

    Python 2023年10月23日
    048
  • 企业级分布式爬虫框架入门

    如果有帮助欢迎点赞、收藏或转发~ 分布式基础 分布式系统通过模块/服务的解耦,部署到不同服务器上,并发量大的模块部署到多个服务器即可。解耦之后,模块/服务之间的通信需要通过消息队列…

    Python 2023年10月2日
    059
  • Python pandas DataFrame排序与去重操作

    本篇文章主要介绍了Python数据分析Pandas Dataframe排序与去重操作:1、DataFrame 的排序分为两种,一种是对索引进行排序,另一种是对值进行排序;2、Dat…

    Python 2023年8月6日
    057
  • NumPy库学习笔记

    ​ NumPy的数据类型 ​ 数组 ​ 数组的属性 ​ 创建数组 ​ 数组的运算 ​ 数组的索引与切片 ​ 数组的合并 ​ 数组的分割 关于NumPy Numeric Python…

    Python 2023年8月26日
    075
  • [附源码]Python计算机毕业设计 学生宿舍管理系统

    项目运行环境配置:Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs。 …

    Python 2023年11月8日
    039
  • COCO数据集的介绍和使用

    这篇文章是我研究生阶段入学期间学习所记,主要供自己使用,结合了论文原作和源码,中间借鉴的一些b站的视频以及他人博客的解释,会在文章末尾贴出链接。 目录 COCO数据集的介绍 COC…

    Python 2023年9月29日
    069
  • XGBoost的简单安装及入门使用

    XGBoost安装及简单入门 XGBoost支持多种操作系统,如Windows, Linux, MacOS等,并支持多种语言版本,如Python, R, Scale, Java等。…

    Python 2023年8月2日
    080
  • 用python完成多项式拟合曲线

    用python完成多项式拟合需要用到的库有 numpy和 matplotlib 曲线拟合的函数在numpy库中: polyfit(x,y,n) x 为源数据点对应的横坐标,可为行向…

    Python 2023年8月25日
    062
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球