程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python matplotlib畫圖時坐標軸重疊顯示不全和圖片保存時不完整的問題解決

編輯:Python

目錄

問題

解決方案

保存時圖片不完整的問題

補充:使用matplotlib時如何讓坐標軸完整顯示所有的標簽刻度

總結

問題

在使用matplotlib作圖的時候,有的時候會遇到畫圖時坐標軸重疊,顯示不全和圖片保存時不完整的問題。如下:

解決方案

畫圖時重疊或者顯示不全的問題

畫圖時加上參數設置tight_layout=True

畫完所有子圖後,設置plt.tight_layout()

# 加上tight_layout=True 參數設置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)

效果如下:

保存時圖片不完整的問題

在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時如何讓坐標軸完整顯示所有的標簽刻度

在使用matplotlib時,由於數據量過大,在默認設置下,使用plot等時,會將x,y軸的刻度按一定比例縮減掉一部分,如:1,2,3,4,5,6,7,8,9,10會顯示成2,4,6,8,10等,解決方法是使用xticks()和yticks():

xticks(ticks=None, labels=None, **kwargs)

ticks:x軸顯示的數值(類型:list),若為空,則x軸上不會顯示任何數值;

labels:標簽項,當ticks不為空時,labels內容將覆蓋ticks的內容

**kwargs:控制標簽內容的排版

Return:

locs:返回x軸坐標列表

labels:返回x軸標簽列表

總結

到此這篇關於python matplotlib畫圖時坐標軸重疊顯示不全和圖片保存時不完整問題解決的文章就介紹到這了,更多相關matplotlib畫圖時坐標軸重疊顯示不全內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved