繪製風杆圖import matplotlib.pyplot as pltimport numpy as np#使用numpy生成不同的x和y樣本數組,x=np.linspace(start,stop,樣本數量)x=np.linspace(-20,20,8)y=np.linspace(0,20,8)#numpy的meshgrid(x,y)函數將創建出一個二維坐標網絡,觀測數據將在網格特定坐標上採樣X,Y=np.meshgrid(x,y)#U,V是以knots為單位的南北和東西方向的風速值U,V=X+25,Y-25#繪製一行二列的子圖一plt.subplot(1,2,1)#X,Y表示坐標,U,V表示風向標的指向,flagcolor定義風杆任何旗標的顏色plt.barbs(X,Y,U,V,flagcolor='green',alpha=0.75)#設置網格線plt.grid(True,color='gray')#子圖二plt.subplot(1,2,2)plt.barbs(X,Y,U,V,flagcolor='deeppink',alpha=0.75)plt.grid(True,color='black')plt.show()
2.繪製箱線圖(四分位數)
import matplotlib.pyplot as plt#建立字典PROCESSES,導入ABCD四組數據PROCESSES={"A":[12,6,9,2,25,36,41,85,32,14], "B":[2,6,8,23,21,56,41,96,32,564,52], "C":[85,63,89,21,36,74,12,69], "D":[123,234,189,157,145,196,225,321],}#將PROCESSES字典的數據導入DATA,PROCESSES字典的標籤導入LABELSDATA=PROCESSES.values()LABELS=PROCESSES.keys()#繪製箱線圖,notch=False盒形代替凹槽形plt.boxplot(DATA,notch=False,widths=0.3)#將X軸刻度標籤設置為字典PROCESSES中的鍵值:ABCDplt.gca().xaxis.set_ticklabels(LABELS)#隱藏坐標軸for spine in plt.gca().spines.values(): spine.set_visible(False)#隱藏X軸刻度線plt.gca().xaxis.set_ticks_position('none')#將Y軸刻度線設置在左側plt.gca().yaxis.set_ticks_position('left')#添加坐標軸標籤plt.ylabel("Errors observed over defined period.")plt.xlabel("Process observed over defined period.")#展示圖片plt.show()
3.橫向條形圖
import matplotlib.pyplot as pltimport numpy as np# 恢復rc的默認設置(run configuration即運行配置)# (如果希望恢復到預設的配置(matplotlib載入時從配置文件讀入的配置),可以調用rcdefaults())plt.rcdefaults()#用來創建總畫布「窗口」,有figure就可以在上邊作圖,這裡1*1,就是繪畫一個子圖fig,ax=plt.subplots(1,1)#定義一個六個人名的元組person=('小紅','小綠','小蘭','小黑','小白','小程')#正常顯示中文plt.rcParams['font.sans-serif'] = ['SimHei']#len(person)計算元組person中的人數,所以y_pos=np.arange(6)#=np.arange(6)返回[0 1 2 3 4 5],與人名一一對應y_pos=np.arange(len(person))#np.random.rand(6)隨機返回6個0-1之間的值score=4+5*np.random.rand(len(person))error=np.random.rand(len(person))# 繪製水平條形圖,y_pos為y軸的坐標,這裡就是有幾條柱狀圖的意思。# performance是條的橫向長度度。xerr為容錯值,即條形圖右側的黑線。align對齊方式:居中對齊ax.barh(y_pos,score,xerr=error,align='center',color='darkblue',edgecolor='white')#設置Y軸刻度的位置和標籤名ax.set_yticks(y_pos)ax.set_yticklabels(person)#翻轉Y軸,可以嘗試做做ax.invert_yaxis()ax.set_xlabel('score')ax.set_title('The score of five persons')plt.show()
4.簡單顏色填充圖
#導入繪圖所需要的包import matplotlib.pyplot as pltimport numpy as np#設置X軸坐標值所在的區間和樣本數以及函數y的表達式x=np.linspace(0,8,1000)y=np.sin(np.pi*x)#生成繪圖所需的圖紙,zorder : 控制繪圖順序fig,ax=plt.subplots()ax.fill(x,y,zorder=5,color='deeppink')ax.grid(True,zorder=5)plt.show()
5.稍微複雜的顏色填充圖
import matplotlib.pyplot as pltimport numpy as np#設置X軸坐標所在的區間和樣本數量以及函數y,y1的公式,在一張圖紙中繪畫兩個填充圖x=np.linspace(0,2*np.pi,1000)y=np.sin(x)y1=np.cos(3*x)fig,ax=plt.subplots()#依次設置x和y、y1的填充圖ax.fill(x,y,'green',x,y1,'yellow',alpha=0.4)plt.show()