我在網上隨便找了一組數據,用它來學習畫圖。大家可以直接把下面的數據復制到excel里,然后用pandas的read_excel命令讀取。或者直接在腳本里創建該數據。
餅圖: ax.pie(x,labels=...,explode=...)
代碼如下:
import numpy as np import matplotlib from matplotlib import pyplot as plt matplotlib.rcParams['font.sans-serif']='Microsoft Yahei' #改字體為微軟雅黑,以便顯示中文 fig,ax=plt.subplots() animal={"鋸齒動物":38,"蝙蝠類":21.8,"食蟲類":8.2,"靈長類":8,"其他":6.9,"有袋類":6.5,"食肉類":5.6,"偶蹄類":5} #創建數據 data=np.array([i for i in animal.values()]).astype(float) #餅圖顯示數據,將其轉換成float格式 explode=[0.1,0,0,0,0,0,0,0] #設置突出顯示的內容,這里為突出顯示第一項 label=np.array([j for j in animal.keys()]) #設置標簽 ax.pie(data,labels=label,autopct='%.1f%%',explode=explode,startangle=90,counterclock=False) #autopct為顯示百分比,startangle為起始角度,counterclock逆時針選否 ax.set_title("哺乳動物類群") #設置標題 ax.axis("equal") #設置x軸和y軸等長,否則餅圖將不是一個正圓 plt.show()
圖像如下:
需要注意的是:所有類別的百分比相加應為100%,千萬不要出現少於或大於100%的情況。
還有一種圖是面包圈圖,就是餅中心是空的。可以通過設置ax.pie命令里的wedgeprops參數來達到此效果。
還是以上面的數據為例,來畫面包圈圖:
import numpy as np import matplotlib from matplotlib import pyplot as plt matplotlib.rcParams['font.sans-serif']='Microsoft Yahei' #改字體為微軟雅黑,以便顯示中文 fig,ax=plt.subplots() animal={"鋸齒動物":38,"蝙蝠類":21.8,"食蟲類":8.2,"靈長類":8,"其他":6.9,"有袋類":6.5,"食肉類":5.6,"偶蹄類":5} #創建數據 data=np.array([i for i in animal.values()]).astype(float) #餅圖顯示數據,將其轉換成float格式 label=np.array([j for j in animal.keys()]) #設置標簽 ax.pie(data,labels=label,autopct='%.1f%%',startangle=90,counterclock=False,wedgeprops=dict(width=0.6,edgecolor='w')) #autopct為顯示百分比,startangle為起始角度,counterclock逆時針選否 ax.set_title("哺乳動物類群") #設置標題 ax.axis("equal") #設置x軸和y軸等長,否則餅圖將不是一個正圓 plt.show()
圖像如下: