1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

pythonmatplotlib绘图时纵坐标重合显示不全和图片保存时不完美的问题改进

小本本介绍

大家好,我是本际云服务器推荐网的小编小本本。最近在工作中遇到了一个问题,就是matplotlib绘图时纵坐标重合显示不全和图片保存时不完美的问题。经过一番探索,我总结了解决方案,希望能够帮助到需要的小伙伴。

pythonmatplotlib绘图时纵坐标重合显示不全和图片保存时不完美的问题改进

绘图时纵坐标重合显示不全的解决方案

在matplotlib做图时,有时候会碰到绘图时纵坐标重合,显示不全的难题。解决方法如下:

1. 在画图时加上参数设置tight_layout=True

2. 画完所有子图后,设置plt.tight_layout(),记住要在画完所有子图后

代码示例:

fig,axes=plt.subplots(nrows=2,ncols=1,figsize=(12,6),tight_layout=True)
labels=['2022-{}-01'.format(str(i).zfill(2))for i in range(1,13)]
y1=np.random.randint(low=1,high=10,size=12)
y2=np.random.randint(low=1,high=10,size=12)
axes[0].bar(labels,y1)
axes[0].set_xticks(labels)
axes[0].set_xticklabels(labels,rotation=75)
axes[1].bar(labels,y2)
axes[1].set_xticks(labels)
axes[1].set_xticklabels(labels,rotation=75)
plt.savefig('test.png',dpi=200)
fig,axes=plt.subplots(nrows=2,ncols=1,figsize=(12,6))
labels=['2022-{}-01'.format(str(i).zfill(2))for i in range(1,13)]
y1=np.random.randint(low=1,high=10,size=12)
y2=np.random.randint(low=1,high=10,size=12)
axes[0].bar(labels,y1)
axes[0].set_xticks(labels)
axes[0].set_xticklabels(labels,rotation=75)
axes[1].bar(labels,y2)
axes[1].set_xticks(labels)
axes[1].set_xticklabels(labels,rotation=75)
plt.tight_layout()
#这里加上plt.tight_layout(),记住要在画完所有子图后
plt.savefig('test.png',dpi=200)

保存图片不完整的解决方案

在matplotlib做图时,有时候保存图片时会出现不完整的问题。解决方法如下:

在plt.savefig中加入bbox_inches=’tight’参数设置

代码示例:

fig,axes=plt.subplots(nrows=2,ncols=1,figsize=(12,6),tight_layout=True)
labels=['2022-{}-01'.format(str(i).zfill(2))for i in range(1,13)]
y1=np.random.randint(low=1,high=10,size=12)
y2=np.random.randint(low=1,high=10,size=12)
axes[0].bar(labels,y1)
axes[0].set_xticks(labels)
axes[0].set_xticklabels(labels,rotation=75)
axes[1].bar(labels,y2)
axes[1].set_xticks(labels)
axes[1].set_xticklabels(labels,rotation=75)
plt.savefig('test.png',dpi=600,bbox_inches='tight')
#savefig时加入bbox_inches='tight'参数设置

补充:如何让坐标轴完整显示所有的标签刻度

在使用matplotlib时,由于数据量过大,在默认设置下,使用plot等时,会将x,y轴的刻度按一定比例缩减掉一部分。解决方法是使用xticks()和yticks():

方法:xticks(ticks=None,labels=None,**kwargs)

参数说明:

ticks:x轴显示的数值(类型:list),若为空,则x轴上不会显示任何数值;

labels:标签项,当ticks不为空时,labels内容将覆盖ticks的内容

**kwargs:控制标签内容的排版

Return: locs:返回x轴坐标列表;labels:返回x轴标签列表

以上就是关于python matplotlib绘图时纵坐标重合显示不全和图片保存的时候不完善解决问题的方法,希望对大家有所帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6938.html