matplotlib基礎

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

相關文章
相關標籤/搜索