中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

發布時間:2021-07-19 10:17:02 來源:億速云 閱讀:227 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在使用matplotlib畫圖的時候將常會出現坐標軸的標簽太長而出現重疊的現象,本文主要通過自身測過好用的解決辦法進行展示,希望也能幫到大家,原圖出現重疊現象例如圖1:

python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

代碼為:

data1=[[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765]]
data2=[[0.2985,0.2268,0.2985,0.2996,0.2985],[0.2022,0.3203,0.3141,0.2926,0.2681],[0.2985,0.2668,0.2786,0.2985,0.2985],[0.2985,0.2985,0.2984,0.2978,0.2966]]
data3=[[0.7789,0.7698,0.6999,0.7789,0.7789],[0.7788,0.7758,0.7768,0.7698,0.8023],[0.7789,0.7781,0.7789,0.7789,0.7789],[0.7789,0.7782,0.7752,0.7852,0.7654]]
data4=[[0.6688,0.6688,0.6688,0.6981,0.6618],[0.6688,0.5644,0.5769,0.5858,0.5882],[0.6688,0.6688,0.6688,0.6688,0.6646],[0.6688,0.6646,0.6646,0.6688,0.6746]]  #date1-date4均為我用到的數據,數據的形式等可自行更換。
##將4個圖畫在一張圖上
fig=plt.figure(figsize=(13,11))
ax1=fig.add_subplot(2, 2, 1)##左右布局
ax2=fig.add_subplot(2, 2, 2)
ax3=fig.add_subplot(2, 2, 3)##上下布局
ax4=fig.add_subplot(2, 2, 4)

plt.sca(ax1)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']#標簽
plt.boxplot(data1,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'}) #linewidth設置線條的粗細;boxprops、capprops、whiskerprops、medianprops表示盒圖中各個線條的類型
plt.ylabel('Today',fontsize=16)
plt.xlabel('(a)',fontsize=16)

plt.sca(ax2)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']
plt.boxplot(data2,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'})
plt.xlabel('(b)',fontsize=16)

plt.sca(ax3)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']
plt.boxplot(data3,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'})
plt.ylabel('Today',fontsize=16)
plt.xlabel('(c)',fontsize=16)

plt.sca(ax4)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']
plt.boxplot(data4,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'})
plt.xlabel('(d)',fontsize=16)
plt.show()

1、解決辦法1: 將軸標簽分兩行顯示,如圖2:

python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

只需在原代碼中每個子圖畫圖中加上代碼:

ax1.set_xticklabels(['Today is Sunday','\n'+'Today is Monday','Today is Tuesday','\n'+'Today is Wednesday'],fontsize=16)

'\n'+則表示換行顯示的意思,想要哪個標簽換行顯示,則在標簽前面加上此符號,也可以換多行,一個\n表示一行,例如'\n\n'+則表示換兩行顯示。fontsize是設置顯示標簽的字體大小。

2、解決辦法2:軸標簽傾斜顯示

python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

同樣只需在原代碼的基礎上加上一句代碼:

ax1.set_xticklabels(['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday'],fontsize=16,rotation=10)

rotation表示傾斜的角度,10即為傾斜10度,可任意設置,也可結合上面換行顯示一同使用。

3、解決辦法3:利用matplotlib里面的自動調整語句

python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

只需在原代碼的畫圖部分的最后加上matplotlib自動調整的語句,圖則會自動調整標簽大小:

plt.tight_layout()

感謝各位的閱讀!關于“python中如何使用matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嵊州市| 东海县| 遂平县| 杭锦后旗| 轮台县| 中西区| 水城县| 沙河市| 澄迈县| 饶平县| 资讯| 洪泽县| 会东县| 本溪市| 汝州市| 会泽县| 红原县| 永昌县| 女性| 晋州市| 手游| 伽师县| 阿拉尔市| 天台县| 德格县| 吴堡县| 抚顺县| 望城县| 郑州市| 东明县| 泾源县| 红安县| 郎溪县| 邢台县| 合山市| 新丰县| 都安| 防城港市| 凌海市| 华安县| 疏附县|