環形圖是餅圖衍生出來的統計圖形,可以看作是兩個以上餅圖的疊合。環形圖與餅圖類似,其實是有差別的。餅圖是用圓形及圓內扇形的面積來表示數值大小的圖形,主要用於表示總體中各組成部分所佔的比例。與之對比,環形圖中間留有空白,可以用多個環展示多個樣本,既可以表示每個樣本中各部分的佔比,又可以對多個樣本的結構同時進行對比。
文字表達永遠沒有圖片來的直觀,從網上隨便搜了一個環形圖先簡單感受下:
繪製簡單環形圖
上邊的環形圖只有一個環,實際上可以根據需要繪製多個環嵌套在一起的環形圖,並且也可以加上每一段弧形所佔的比例,我們先從簡單的開始,繪製一個簡單的環形圖。
先看下數據源長什麼樣子,依然是繪製餅圖時用到的數據:
所謂環形圖,其實用到的依然是繪製餅圖的函數,只是對其中的參數進行設置後形成環形圖,我們先來繪製一個簡單的第一小學成績環形圖:
plt.figure(figsize=(8,8)) #新建畫布,畫布大小爲8*8
plt.pie(data2.iloc[0,1:] #截取第一小學的成績
,radius=1 # 設置半徑爲1
,labels=['語文','數學','英語'] #設置各個角的標籤
,autopct='%.2f%%' #設置精度爲小數點後兩位
,textprops={'fontsize': 14, 'color': 'k'} #設置標籤字體和顏色
,wedgeprops=dict(width=0.4, edgecolor='w')); #設置餅弧寬度和邊框顏色
和之前繪製餅圖不同的是多設置了三個參數,一個是設置半徑,一個是設置字體和顏色(介紹餅圖的文章中餅圖中字體有點小,顏色是默認的黑色,其實字體大小和顏色都是可以設置的),最後一個是設置弧度寬度和邊框顏色,所謂弧度的寬度其實就是環形的寬度。
來看下效果:
像這種簡單的環形圖,作用和餅圖差不多,只能反映一個小學的成績情況,如果想要查看兩個學校對比的情況需要繪製兩個圖,當然環形圖可以解決這個問題,下邊我們來看下升級版的環形圖!
繪製升級版環形圖
以繪製兩個環形爲例:
plt.figure(figsize=(8,8)) #新建畫布,畫布大小爲8*8
plt.pie(data2.iloc[0,1:] #截取第一小學的成績
,radius=1 # 設置半徑爲1
,labels=['語文','數學','英語'] #設置各個角的標籤
,autopct='%.2f%%' #設置精度爲小數點後兩位
,textprops={'fontsize': 14, 'color': 'k'} #設置標籤字體和顏色
,wedgeprops=dict(width=0.4, edgecolor='w')) #設置餅弧寬度和邊框顏色
plt.pie(data2.iloc[1,1:] #截取第二小學的成績
,radius=0.6 # 設置半徑爲0.6
,autopct='%.2f%%'#設置精度爲小數點後兩位
,textprops={'fontsize': 12, 'color': 'w'}#設置標籤字體和顏色
,wedgeprops=dict(width=0.4, edgecolor='w'));#設置餅弧寬度和邊框顏色
以前的文章提到過,可以在同一塊畫布上重複繪圖,在繪製堆積條形圖的時候用到的就是這個知識點,繪製多個環的環形圖也是相同的道理。
在同一塊畫布上繪製兩個環,一個大環一個小環,需要注意的是要先繪製大環,後繪製小環,因爲後繪製的圖會覆蓋先繪製的圖,所以我們設置第一個環的半徑是1,後邊繪製的環半徑是0.6,來看下效果:
喏,就是這個效果了,這個圖還缺少一個標題,相信大家都知道如何添加圖形標題了。
當然這個環形圖中的兩個環挨在一起了,平時我們看到的環形圖每個環之間會有一點間隙,能夠很明顯的看出是兩個分離的環,其實這個也不難!仔細觀察上邊的代碼,兩個環之間的半徑差是0.4,而我們對弧形寬度也設置的是0.4,所以兩個環之間一點縫隙都沒有,通過對這兩個參數的設置就可以控制兩個環之間的距離了。
plt.figure(figsize=(8,8))
plt.pie(data2.iloc[0,1:]
,radius=1
,labels=['語文','數學','英語']
,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("第一小學(外環)和第二小學(內環)成績圖");
兩個環形的半徑差沒有變,依然是0.4,我們把弧形寬度改成了0.3,來看下效果:
這樣是不是就變成大家心目中環形圖的樣子了(我又偷偷的加上標題了)?這是兩個學校的成績環形圖,如果想要多畫幾個環,記得把半徑差設置大一點,弧形寬度設置小一點,能夠容納多個環形就可以啦!
你學會了嗎?