Python?Matplotlib繪制扇形圖標(biāo)簽重疊問(wèn)題解決過(guò)程
問(wèn)題如下
當(dāng)我使用Matplotlib繪制圖形時(shí),經(jīng)常會(huì)遇到一些比例太小導(dǎo)致 百分比標(biāo)簽 以及 文本標(biāo)簽 重疊問(wèn)題。這樣的話非常影響美觀,效果在BOSS心中的大打折扣。
代碼如下:
from matplotlib import pyplot as plt frac = [0,0,18/50,16/50,9/50,6/50,2/50] label = ['[3,4]','(4,5]','(5,6]','(6,7]','(7,8]','(8,9]','(9,10]'] plt.pie(frac,labels=label,autopct="%.2f%%",textprops={"size":10},shadow=True) plt.show()
解決
老Amy不甘示弱,遇到問(wèn)題就是肝!首先,我們解決的思路是,使得重疊標(biāo)簽中,一個(gè)進(jìn)行向上挪動(dòng)一丟丟即可。
那問(wèn)題是代碼怎么來(lái)實(shí)現(xiàn)呢?
首先,我們需要了解到,plt.pie()
有多個(gè)返回值,參考官網(wǎng)如下:
oh no,那有的朋友會(huì)說(shuō)全英文的誰(shuí)知道在巴巴啥,于是翻譯過(guò)來(lái)如下:
- patches 繪制餅圖每一塊的對(duì)象
- texts 文本的列表
- autotexts 百分比的文本列表
或者打印出來(lái)如下:
這樣我們就明白了。所以第二步,我們需要考慮的是:如何取出我們需要的 文本對(duì)象 與 百分比對(duì)象 去設(shè)置距離。
了解到每個(gè)返回的數(shù)據(jù)類(lèi)型實(shí)際上是 list
列表,而列表里面的每個(gè)元素就是圖形中每個(gè)文本的對(duì)象。
所以,此時(shí)我們通過(guò)循環(huán)將重疊的元素取出來(lái),而又因?yàn)闃?gòu)建繪圖數(shù)據(jù)中,是索引為0與索引為1兩個(gè)元素為0導(dǎo)致重疊。所以我們獲取其中一個(gè)即可。
代碼如下:
from matplotlib import pyplot as plt frac = [0,0,18/50,16/50,9/50,6/50,2/50] label = ['[3,4]','(4,5]','(5,6]','(6,7]','(7,8]','(8,9]','(9,10]'] patches,texts,autotexts = plt.pie(frac,labels=label,autopct="%.2f%%",textprops={"size":10},shadow=True) for i in range(len(autotexts)): if i == 0: print(texts[i]) print(autotexts[i]) plt.show()
那問(wèn)題是,我們?cè)趺慈ピO(shè)置它的位置呢?因?yàn)?code>matplotlib關(guān)于設(shè)置的方法非常多,而我們并不主張記憶,更加主張時(shí)用時(shí)查。所以這個(gè)時(shí)候就需要借助我們的官網(wǎng)了。
查官網(wǎng)的第一步是需要知道,該數(shù)據(jù)是什么類(lèi)型的對(duì)象,則使用type()
輸出其類(lèi)型。
print(type(texts[i])) print(type(autotexts[i]))
然后我們就去官網(wǎng)搜索matplotlib.text.Text
,定位:
ohohoh,至于這些英文就需要大家自己去看了,你懂的吧!所以接下來(lái),我們來(lái)寫(xiě)代碼解決我們的問(wèn)題:
from matplotlib import pyplot as plt frac = [0,0,18/50,16/50,9/50,6/50,2/50] label = ['[3,4]','(4,5]','(5,6]','(6,7]','(7,8]','(8,9]','(9,10]'] patches,texts,autotexts = plt.pie(frac,labels=label,autopct="%.2f%%",textprops={"size":10},shadow=True) for i in range(len(autotexts)): if i == 0: print(texts[i].set_y(0.1)) print(autotexts[i].set_y(0.1)) plt.show()
總結(jié)
到此這篇關(guān)于Python Matplotlib繪制扇形圖標(biāo)簽重疊問(wèn)題解決的文章就介紹到這了,更多相關(guān)Matplotlib繪制扇形圖標(biāo)簽重疊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 利用Pycharm將python文件打包為exe文件的超詳細(xì)教程(附帶設(shè)置文件圖標(biāo))
- 教你用Python pygame設(shè)置窗口標(biāo)題和圖標(biāo)
- Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式(網(wǎng)站logo圖標(biāo))動(dòng)起來(lái)
- python為QT程序添加圖標(biāo)的方法詳解
- Python中用pyinstaller打包時(shí)的圖標(biāo)問(wèn)題及解決方法
- python3.7將代碼打包成exe程序并添加圖標(biāo)的方法
- 利用python和百度地圖API實(shí)現(xiàn)數(shù)據(jù)地圖標(biāo)注的方法
- python識(shí)別圖標(biāo)并點(diǎn)擊功能實(shí)現(xiàn)
相關(guān)文章
Python實(shí)現(xiàn)網(wǎng)站注冊(cè)驗(yàn)證碼生成類(lèi)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)網(wǎng)站注冊(cè)驗(yàn)證碼生成類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06詳解在Python中使用OpenCV進(jìn)行直線檢測(cè)
在圖像處理中,直線檢測(cè)是一種常見(jiàn)的算法,它通常獲取n個(gè)邊緣點(diǎn)的集合,并找到通過(guò)這些邊緣點(diǎn)的直線。本文將介紹如何在Python中利用OpenCV進(jìn)行直線檢測(cè),需要的可以參考一下2022-03-03Python實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫(kù)的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫(kù)的方法,涉及Python同時(shí)進(jìn)行SQLServer與MongoDB數(shù)據(jù)庫(kù)的連接、查詢、讀取、寫(xiě)入等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06python實(shí)現(xiàn)的爬取電影下載鏈接功能示例
這篇文章主要介紹了python實(shí)現(xiàn)的爬取電影下載鏈接功能,涉及Python基于BeautifulSoup模塊的網(wǎng)頁(yè)信息爬取相關(guān)操作技巧,需要的朋友可以參考下2019-08-08python-opencv中的cv2.inRange函數(shù)用法說(shuō)明
這篇文章主要介紹了python-opencv中的cv2.inRange函數(shù)用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04pandas中iloc函數(shù)的具體實(shí)現(xiàn)
iloc是Pandas中用于基于整數(shù)位置進(jìn)行索引和切片的方法,本文主要介紹了pandas中iloc函數(shù)的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06django filters實(shí)現(xiàn)數(shù)據(jù)過(guò)濾的示例代碼
這篇文章主要介紹了django filters實(shí)現(xiàn)數(shù)據(jù)過(guò)濾的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Django imgareaselect手動(dòng)剪切頭像實(shí)現(xiàn)方法
這篇文章主要介紹了Django imgareaselect手動(dòng)剪切頭像實(shí)現(xiàn)方法,實(shí)例分析了Django框架操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-05-05