Matplotlib 基礎html
注:本文中的程序都默認引入了numpy庫和matplotlib庫,而且分別簡寫爲np與plt;若是讀者不知道怎麼使用numpy庫,能夠移步到這一博客上進行簡單的學習dom
1、簡單繪圖案例ide
#簡單的畫圖例子 x=np.linspace(0,1,num=200)#橫座標 y1=x**2#縱座標1 y2=x*3+0.2#縱座標2 #圖片框1 plt.figure(1) plt.plot(x,y1, label='line1')#繪製曲線 plt.plot(x,y2, linewidth=5, color='coral', linestyle='--', label='line2')#繪製不一樣風格的曲線 plt.legend() #圖片框2 plt.figure(2) plt.plot(x,y2) plt.show()#顯示
顯示結果:學習
2、設置座標軸字體
#座標軸設置 x=np.linspace(0,1,num=200) y1=x**2 #圖片框1 plt.figure(1) plt.plot(x,y1)#繪製曲線 #座標軸設置 plt.xlim((0,1))#x軸取值範圍 plt.ylim((0,1))#y軸取值範圍 plt.xlabel('x')#x軸軸標 plt.ylabel('y')#y軸軸標 #x軸ticks設置 new_ticks=np.linspace(0,1,5) plt.xticks(new_ticks) #設置繪圖座標軸的位置 axis=plt.gca()#獲取當前的座標軸 axis.spines['left'].set_position(('data', 0.1))#將y軸設置到x軸上爲1的位置 axis.spines['bottom'].set_position(('data', 0.5))#將x軸設置到y軸上爲1的位置 plt.show()
輸出結果:spa
3、圖片標註3d
#圖片標註 x=np.linspace(0,1,num=200) y1=x**2 plt.figure(1) plt.plot(x,y1,label='line 1')#繪製曲線,label設置爲1 plt.legend() #設置繪圖座標軸的位置 axis=plt.gca()#獲取當前的座標軸 axis.spines['left'].set_position(('data', 0))#將y軸設置到x軸上爲0的位置 axis.spines['bottom'].set_position(('data', 0))#將x軸設置到y軸上爲0的位置 #被標註點 x0=0.5 y0=0.5**2 plt.scatter(x0, y0, s=30, color='red')#經過散點圖來繪製點 plt.plot([x0,x0],[y0,0], color='black', linestyle='--',linewidth=3)#繪製一條垂直於x軸的虛線 #添加標註 plt.annotate('annotation', [x0+0.1,y0], fontsize=10)#在座標[x0+0.1,y0]處添加標註 plt.show()
輸出結果:code
4、設置座標軸遊標字體大小orm
#操做座標軸的label x=np.linspace(0,2,num=200) y1=x**2 #圖片框1 plt.figure(1) plt.plot(x,y1)#繪製曲線 #座標軸設置 plt.xlim((0,2))#x軸取值範圍 plt.ylim((0,2))#y軸取值範圍 ax=plt.gca()#拿到如今的座標軸 for label in ax.get_xticklabels() +ax.get_yticklabels(): label.set_fontsize(12)#設置座標軸label的字體大小 plt.show()
輸出結果:htm
5、繪製散點圖
# scatter 散點圖 x=np.random.normal(0,1,100) y=np.random.normal(0,1,100) plt.scatter(x,y, s=50, c='blue',marker='o',alpha=0.6) plt.show()
6、柱狀圖
x=np.arange(0,10, step=1) y=np.arange(0,10, step=1) plt.bar(x,y, color='red', width=0.3)
#在每個柱形圖上面添加文字標註 for x0,y0 in zip(x,y): plt.text(x0,y0, '%i'%y0) plt.show()
輸出爲:
7、等高線圖
#等高線圖 x=np.linspace(0,10, 100) y=np.linspace(0,10, 100) x_m,y_m=np.meshgrid(x,y)#網格化 z=x_m**2+y_m**2 plt.contourf(x_m, y_m, z, 10, alpha=0.5, cmap=plt.cm.hot)#繪製熱圖,10表明着高度的分級 c=plt.contour(x_m,y_m, z, 10, colors='black', linewidth=11)#繪製等高線 plt.clabel(c, inline=True, fontsize=10)#爲等高線添加標註 plt.show()
8、3D繪圖
#3D繪圖 from mpl_toolkits.mplot3d import Axes3D x=np.linspace(0,10, 100) y=np.linspace(-10,10, 100) x_m,y_m=np.meshgrid(x,y)#網格化 z=x_m**2+y_m**2 fig=plt.figure() ax=Axes3D(fig)#爲figure添加3D座標軸 ax.plot_surface(x_m, y_m, z,rstride=5, cstride=5, cmap=plt.cm.hot)#繪製3D的表面, rstide爲行跨度,cstride爲列跨度 ax.contourf(x_m, y_m, z, zdir='z',offset=6)#offset指的是等高線圖與xy平面之間的距離, zdir設置投影方向 plt.show()
9、subplot 繪製多個圖
#subplot,繪製子圖像 x=np.linspace(0,1,100) y=x**2 plt.figure() plt.subplot(2, 2,1)#將figure劃分爲2*2,在編號爲1的位置繪圖 plt.plot(x,y) plt.subplot(2, 2,2)#將figure劃分爲2*2,在編號爲2的位置繪圖 plt.plot(x,x) plt.subplot(2, 2,3)#將figure劃分爲2*2,在編號爲3的位置繪圖 plt.plot(y,y) plt.subplot(2, 2,4)#將figure劃分爲2*2,在編號爲4的位置繪圖 plt.plot(y,y) plt.show()