嵌套饼图_你真的了解matplotlib吗?---环形图
環(huán)形圖簡介
環(huán)形圖是餅圖衍生出來的統(tǒng)計圖形,可以看作是兩個以上餅圖的疊合。環(huán)形圖與餅圖類似,其實是有差別的。餅圖是用圓形及圓內(nèi)扇形的面積來表示數(shù)值大小的圖形,主要用于表示總體中各組成部分所占的比例。與之對比,環(huán)形圖中間留有空白,可以用多個環(huán)展示多個樣本,既可以表示每個樣本中各部分的占比,又可以對多個樣本的結(jié)構(gòu)同時進(jìn)行對比。
文字表達(dá)永遠(yuǎn)沒有圖片來的直觀,從網(wǎng)上隨便搜了一個環(huán)形圖先簡單感受下:
繪制簡單環(huán)形圖
上邊的環(huán)形圖只有一個環(huán),實際上可以根據(jù)需要繪制多個環(huán)嵌套在一起的環(huán)形圖,并且也可以加上每一段弧形所占的比例,我們先從簡單的開始,繪制一個簡單的環(huán)形圖。
先看下數(shù)據(jù)源長什么樣子,依然是繪制餅圖時用到的數(shù)據(jù):
所謂環(huán)形圖,其實用到的依然是繪制餅圖的函數(shù),只是對其中的參數(shù)進(jìn)行設(shè)置后形成環(huán)形圖,我們先來繪制一個簡單的第一小學(xué)成績環(huán)形圖:
plt.figure(figsize=(8,8)) #新建畫布,畫布大小為8*8 ? plt.pie(data2.iloc[0,1:] #截取第一小學(xué)的成績,radius=1 # 設(shè)置半徑為1,labels=['語文','數(shù)學(xué)','英語'] #設(shè)置各個角的標(biāo)簽,autopct='%.2f%%' #設(shè)置精度為小數(shù)點后兩位,textprops={'fontsize': 14, 'color': 'k'} #設(shè)置標(biāo)簽字體和顏色,wedgeprops=dict(width=0.4, edgecolor='w')); #設(shè)置餅弧寬度和邊框顏色 ?和之前繪制餅圖不同的是多設(shè)置了三個參數(shù),一個是設(shè)置半徑,一個是設(shè)置字體和顏色(介紹餅圖的文章中餅圖中字體有點小,顏色是默認(rèn)的黑色,其實字體大小和顏色都是可以設(shè)置的),最后一個是設(shè)置弧度寬度和邊框顏色,所謂弧度的寬度其實就是環(huán)形的寬度。
來看下效果:
像這種簡單的環(huán)形圖,作用和餅圖差不多,只能反映一個小學(xué)的成績情況,如果想要查看兩個學(xué)校對比的情況需要繪制兩個圖,當(dāng)然環(huán)形圖可以解決這個問題,下邊我們來看下升級版的環(huán)形圖!
繪制升級版環(huán)形圖
以繪制兩個環(huán)形為例:
plt.figure(figsize=(8,8)) #新建畫布,畫布大小為8*8 ? plt.pie(data2.iloc[0,1:] #截取第一小學(xué)的成績,radius=1 # 設(shè)置半徑為1,labels=['語文','數(shù)學(xué)','英語'] #設(shè)置各個角的標(biāo)簽,autopct='%.2f%%' #設(shè)置精度為小數(shù)點后兩位,textprops={'fontsize': 14, 'color': 'k'} #設(shè)置標(biāo)簽字體和顏色,wedgeprops=dict(width=0.4, edgecolor='w')) #設(shè)置餅弧寬度和邊框顏色 ? plt.pie(data2.iloc[1,1:] #截取第二小學(xué)的成績,radius=0.6 # 設(shè)置半徑為0.6,autopct='%.2f%%'#設(shè)置精度為小數(shù)點后兩位,textprops={'fontsize': 12, 'color': 'w'}#設(shè)置標(biāo)簽字體和顏色,wedgeprops=dict(width=0.4, edgecolor='w'));#設(shè)置餅弧寬度和邊框顏色以前的文章提到過,可以在同一塊畫布上重復(fù)繪圖,在繪制堆積條形圖的時候用到的就是這個知識點,繪制多個環(huán)的環(huán)形圖也是相同的道理。
在同一塊畫布上繪制兩個環(huán),一個大環(huán)一個小環(huán),需要注意的是要先繪制大環(huán),后繪制小環(huán),因為后繪制的圖會覆蓋先繪制的圖,所以我們設(shè)置第一個環(huán)的半徑是1,后邊繪制的環(huán)半徑是0.6,來看下效果:
喏,就是這個效果了,這個圖還缺少一個標(biāo)題,相信大家都知道如何添加圖形標(biāo)題了。
當(dāng)然這個環(huán)形圖中的兩個環(huán)挨在一起了,平時我們看到的環(huán)形圖每個環(huán)之間會有一點間隙,能夠很明顯的看出是兩個分離的環(huán),其實這個也不難!仔細(xì)觀察上邊的代碼,兩個環(huán)之間的半徑差是0.4,而我們對弧形寬度也設(shè)置的是0.4,所以兩個環(huán)之間一點縫隙都沒有,通過對這兩個參數(shù)的設(shè)置就可以控制兩個環(huán)之間的距離了。
plt.figure(figsize=(8,8)) ? plt.pie(data2.iloc[0,1:],radius=1,labels=['語文','數(shù)學(xué)','英語'],autopct='%.2f%%',textprops={'fontsize': 14, 'color': 'k'},wedgeprops=dict(width=0.3, edgecolor='w')) ? plt.pie(data2.iloc[1,1:] ,radius=0.6 ,autopct='%.2f%%',textprops={'fontsize': 14, 'color': 'k'},wedgeprops=dict(width=0.3, edgecolor='w')) ? plt.title("第一小學(xué)(外環(huán))和第二小學(xué)(內(nèi)環(huán))成績圖");兩個環(huán)形的半徑差沒有變,依然是0.4,我們把弧形寬度改成了0.3,來看下效果:
這樣是不是就變成大家心目中環(huán)形圖的樣子了(我又偷偷的加上標(biāo)題了)?這是兩個學(xué)校的成績環(huán)形圖,如果想要多畫幾個環(huán),記得把半徑差設(shè)置大一點,弧形寬度設(shè)置小一點,能夠容納多個環(huán)形就可以啦!
你學(xué)會了嗎?
總結(jié)
以上是生活随笔為你收集整理的嵌套饼图_你真的了解matplotlib吗?---环形图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python骨灰技巧_Pandas技巧,
- 下一篇: 透明大页相关内核参数_透明大内存页Hug