<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
圓環圖(Donut Chart),又稱為環形圖,甜甜圈圖。它從餅圖變形而來,單環的作用上與餅圖相似,用於展示定性資料中小類佔大類的比例關係。
Q: 那既然都有餅圖了,為什麼還要圓環圖呢?
① 從空間利用效果上,餅圖的text我們常利用指示線標註在每一塊外;而圓環圖憑藉中間挖空的優勢,可以將title或者每一塊的text內建,便於多圖排布對比。
② 從視覺效果上,如果是一維定性的情況,我們只需要繪製一張餅圖或者圓環圖,這個時候其實兩者沒差。但一旦有兩維資料,餅圖利用角度對比大小的方式其實沒有圓環圖利用長度來得明顯;再者,在多圖對比時,餅圖是完全填充,如果色系選擇不當,很容易給受眾產生厚重的感覺,或者說土土的。
③ 對於複合圖形,旭日圖和雙層環形也是一樣的道理。
圓環圖範例:
我們目前手上有的是隨機選取的八座城市過去一年每日的空氣質量評級資料(藉助爬蟲,源自天氣後報網http://www.tianqihoubao.com/aqi/)。
網頁資料如下:
由於圓環圖要的是定性資料,那我們將質量等級定為視覺化物件。我們的目標是:利用圓環圖分析各個城市一年中空氣質量等級分佈的情況。對於收集的資料,利用excel整理如下所示:
接下來,我們匯入資料
import pandas as pd import matplotlib.pyplot as plt import numpy as np df_yh = pd.DataFrame(pd.read_excel('./天氣質量指數.xlsx'))
繪圖所需要的資料結構如下所示:
顯然,我們的資料是二維定性的【城市+空氣質量等級】,如果是要將質量等級作為大類繪製複合圖當然也是可行的,但因為城市比較多,會顯得擁擠。我們這裡選擇的是繪製八幅單圓環再進行排列對比。
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei' plt.rcParams['axes.unicode_minus'] = False wedgeprops = {'width':0.3, 'edgecolor':'black', 'linewidth':3} colors = ['#ffda03', '#58bc08','#ff964f' ,'#c875c4' ,'#9a3001'] fig = plt.figure(figsize=(17,9)) for i in range(1,9): plt.subplot(2,4,i) plt.pie(df_yh.iloc[i-1,1:], wedgeprops=wedgeprops, startangle=90, colors=colors) plt.text(0, 0, df_yh['城市'][i-1] , ha='center', va='center', fontsize=22) # plt.savefig(r'./繪圖結果/圓環圖.png')
繪製結果如下所示:
① ‘width’ -- 圓環的寬度,取值範圍為[0,1],值越大時圓環越寬,width=1的繪製結果即為餅圖,如下所示:
② ‘edgecolor' -- 邊緣線顏色,包含內環、外環和每一個小類間的分割線。選擇顏色只要是plt裡有的都行,但儘量選擇深色。
③ ’linewidth' -- 邊緣線寬度。取值範圍[0,100+),可以是小數值,值越大線越粗。但具體取多少,大家可以根據自己的圖形多嘗試幾個數,個人建議是10以內進行偵錯。
取值可以是實數域上任何的數位,可以為負,也可以為正。0代表正東方向,-90代表正南方向,90代表正北方向。但要注意的是,圖形的繪製按照逆時針方向。
我們在這裡用於標註title。
plt(x,y)中的x,y用於座標定位
ha -- Horizontal 水平方向上以標註文字的哪個位置作為中心 可選項為:'center', 'right', 'left'
va -- vertical 豎直方向上以標註文字的哪個位置作為中心 可選項為:'top', 'bottom', 'center', 'baseline', 'center_baseline'
為了更好理解,我們分別以ha='right', 'left'舉例:
我們可以看到,‘right’並不是指文字位置居右,而是從文字的右部(京)開始在(0,0)繪製。同理,‘left’並不是指文字位置居右,而是從文字的左部(北)開始繪製。
plt.legend()可以將pie中擬定的labels進行顯示,即在plt.pie()中增加labels=labels,但同時圖上每個小類都會附帶類標記。如果我們不希望是圖裡標記出哪個部分是優,哪個部分是輕度汙染的話,調整如下:
labels = ['優','良','輕度汙染','中度汙染','重度汙染'] wedgeprops = {'width':0.3, 'edgecolor':'black', 'linewidth':3} colors = ['#ffda03', '#58bc08','#ff964f' ,'#c875c4' ,'#9a3001'] fig = plt.figure(figsize=(5,5)) plt.pie(df_yh.iloc[1,1:], wedgeprops=wedgeprops, startangle=0, colors=colors) plt.legend(labels,loc='upper left') plt.text(0, 0, df_yh['城市'][1] , ha='center', va='center', fontsize=22)
得到的結果即為:
到此這篇關於Python利用matplotlib繪製圓環圖的文章就介紹到這了,更多相關Python matplotlib繪製圓環圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45