Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例_第1頁
Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例_第2頁
Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例_第3頁
Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例_第4頁
Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例目錄一、概念介紹二、數(shù)據(jù)展示三、圖像繪制四、參數(shù)解釋(1)wedgeprops是我們繪圖時的參數(shù)字典。(2)startangle是第一個數(shù)據(jù)起畫點。(3)plt.text(4)可以繪制如示例圖一樣的colorbar,或者legend嗎?總結(jié)

一、概念介紹

圓環(huán)圖(DonutChart),又稱為環(huán)形圖,甜甜圈圖。它從餅圖變形而來,單環(huán)的作用上與餅圖相似,用于展示定性數(shù)據(jù)中小類占大類的比例關(guān)系。

Q:那既然都有餅圖了,為什么還要圓環(huán)圖呢?

①從空間利用效果上,餅圖的text我們常利用指示線標注在每一塊外;而圓環(huán)圖憑借中間挖空的優(yōu)勢,可以將title或者每一塊的text內(nèi)置,便于多圖排布對比。

②從視覺效果上,如果是一維定性的情況,我們只需要繪制一張餅圖或者圓環(huán)圖,這個時候其實兩者沒差。但一旦有兩維數(shù)據(jù),餅圖利用角度對比大小的方式其實沒有圓環(huán)圖利用長度來得明顯;再者,在多圖對比時,餅圖是完全填充,如果色系選擇不當,很容易給受眾產(chǎn)生厚重的感覺,或者說土土的。

③對于復(fù)合圖形,旭日圖和雙層環(huán)形也是一樣的道理。

圓環(huán)圖示例:

二、數(shù)據(jù)展示

我們目前手上有的是隨機選取的八座城市過去一年每日的空氣質(zhì)量評級數(shù)據(jù)(借助爬蟲,源自天氣后報網(wǎng)/aqi/)。

網(wǎng)頁數(shù)據(jù)如下:

由于圓環(huán)圖要的是定性數(shù)據(jù),那我們將質(zhì)量等級定為可視化對象。我們的目標是:利用圓環(huán)圖分析各個城市一年中空氣質(zhì)量等級分布的情況。對于收集的數(shù)據(jù),利用excel整理如下所示:

接下來,我們導入數(shù)據(jù)

importpandasaspd

importmatplotlib.pyplotasplt

importnumpyasnp

df_yh=pd.DataFrame(pd.read_excel('./天氣質(zhì)量指數(shù).xlsx'))

繪圖所需要的數(shù)據(jù)結(jié)構(gòu)如下所示:

三、圖像繪制

顯然,我們的數(shù)據(jù)是二維定性的【城市+空氣質(zhì)量等級】,如果是要將質(zhì)量等級作為大類繪制復(fù)合圖當然也是可行的,但因為城市比較多,會顯得擁擠。我們這里選擇的是繪制八幅單圓環(huán)再進行排列對比。

plt.rcParams['font.sans-serif']='MicrosoftYaHei'

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))

foriinrange(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'./繪圖結(jié)果/圓環(huán)圖.png')

繪制結(jié)果如下所示:

四、參數(shù)解釋

(1)wedgeprops是我們繪圖時的參數(shù)字典。

①width--圓環(huán)的寬度,取值范圍為[0,1],值越大時圓環(huán)越寬,width=1的繪制結(jié)果即為餅圖,如下所示:

②edgecolor--邊緣線顏色,包含內(nèi)環(huán)、外環(huán)和每一個小類間的分割線。選擇顏色只要是plt里有的都行,但盡量選擇深色。

③linewidth--邊緣線寬度。取值范圍[0,100+),可以是小數(shù)值,值越大線越粗。但具體取多少,大家可以根據(jù)自己的圖形多嘗試幾個數(shù),個人建議是10以內(nèi)進行調(diào)試。

(2)startangle是第一個數(shù)據(jù)起畫點。

取值可以是實數(shù)域上任何的數(shù)字,可以為負,也可以為正。0代表正東方向,-90代表正南方向,90代表正北方向。但要注意的是,圖形的繪制按照逆時針方向。

(3)plt.text

我們在這里用于標注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并不是指文本位置居右,而是從文本的左部(北)開始繪制。

(4)可以繪制如示例圖一樣的colorbar,或者legend嗎?

plt.legend()可以將pie中擬定的labels進行顯示,即在plt.pie()中增加labels=labels,但同時圖上每個小類都會附帶類標記。如果我們不希望是圖里標記出哪個部分是優(yōu),哪個部分是輕度污染的話,調(diào)整如下:

labels=['優(yōu)','良','輕度污染','中度污染','重度污染']

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論