激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

python matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

2020-04-12 13:23菲啊菲 Python

今天小編就為大家分享一篇python matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

python matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題

代碼為:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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畫盒圖、子圖解決坐標軸標簽重疊的問題

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

?
1
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畫盒圖、子圖解決坐標軸標簽重疊的問題

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

?
1
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自動調整的語句,圖則會自動調整標簽大小:

?
1
plt.tight_layout()

以上這篇python matplotlib畫盒圖、子圖解決坐標軸標簽重疊的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/baidu_37995814/article/details/98727766

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品色综合 | 成人在线视频在线观看 | 成年免费大片黄在线观看岛国 | 在线播放免费视频 | 午夜精品福利视频 | 国产伊人色 | 欧美三级短视频 | 黄色av.com | 毛片在线视频免费观看 | 国产免费一区二区三区在线能观看 | 精品久久久久久久久久久久包黑料 | 午夜精品久久久久久中宇 | 中文字幕精品在线观看 | 亚洲情av | 国产精品高潮视频 | 91 成人| 91精品欧美一区二区三区 | 在线1区 | 久久福利国产 | www久久久久久 | 一级外国毛片 | 久久福利精品 | 国产精品视频yy9299一区 | 免费观看国产视频 | av91肉丝一区二区电影 | 欧美综合成人 | 一区二区三区在线观看免费视频 | 一区二区三区四区在线 | 欧美男女爱爱视频 | 欧美成人一区二区三区 | 高清av在线 | 成人午夜在线免费观看 | 在线亚洲欧美日韩 | 高清中文字幕在线 | 精品亚洲一区二区三区 | 精品国产乱码久久久久久丨区2区 | 欧美极品欧美精品欧美视频 | 日韩精品二区 | 成人视屏网站 | 久久精品中文字幕一区二区 | 久久精品一区二区三区四区五区 |