matplotlib(一)——matplotlib横轴坐标密集字符覆盖

时间:2022-12-21 23:43:35

一、问题描述

具体问题是:

  1. 用python库matplotlib进行数据的图表展示;
  2. 图表展示图形横坐标有将近100个自定义值需要显示;
  3. 保存矢量图(svg),保存后发现横坐标过于密集,坐标值之间有覆盖问题;
  4. 如果用jpg图片发现没有这个问题。

二、解决办法

解决思路是:

  • 让图片宽度增加,然后让横轴坐标均匀分布,则字符之间距离会增大。

解决办法:

  • svg默认宽度是6.8英寸,默认高度4英寸。可以增加到8英寸宽度或者更宽
  • 参数:设置距离set_figwidth(val, forward=True)val改成8即可

实例参考:

matplotlib(一)——matplotlib横轴坐标密集字符覆盖matplotlib(一)——matplotlib横轴坐标密集字符覆盖
  1 import pandas as pd
  2 import matplotlib.pyplot as plt
  3 data = pd.read_csv('statistic_char.csv',index_col=0)
  4 fig, ax = plt.subplots()
  5 plt.plot(list(data.index),data)
  6 plt.yticks(range(0,35000000,2000000))
  7 fig.set_figwidth(15)
  8 fig.tight_layout()
  9 fig.ax
 10 plt.show()
 11 fig.savefig('scatter.svg',dpi=1200,format='svg')
 12 
View Code

 

三、相关参考

  1. 设置显示图形的宽度:
  • 设置显示图形的高度: