1. 程式人生 > >使用python matplotlib繪製高階圖表

使用python matplotlib繪製高階圖表

1.等值線圖

其中contour和contourf函式,前者表示繪製等高線,後者表示加色,個人覺得配合使用更好。

dx=0.01;dy=0.01
x=np.arange(-2.0,2.0,dx)
y=np.arange(-2.0,2.0,dx)
X,Y=np.meshgrid(x,y)#生成網格矩陣
def f(x,y):#定義函式生成對於(x,y)的高值
    return (1-y**5+x**5)*np.exp(-x**2-y**2)
C=plt.contour(X,Y,f(X,Y),8,colors='black')#繪製等高線,為等高線設定為黑色
plt.contourf(X,Y,f(X,Y),8
)#新增顏色(顏色區分等高線) plt.clabel(C,inline=1,fontsize=10)#0閉合新增數字,1表示開口新增等高線。等高線字型大小 plt.show()

這裡寫圖片描述
可以變換一種顏色:增加contourf函式的引數cmap=plt.cm.hot
這裡寫圖片描述
使用colorbar增加圖例plt.colorbar
這裡寫圖片描述

2.簡單的3D曲面

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X=np.arange(-2,2,0.1)
Y=np.arange(-2,2,0.1)
X,Y=np.meshgrid(X,Y)
def
f(x,y):
return (1-y**5+x**5)*np.exp(-x**2-y**2) ax.plot_surface(X,Y,f(X,Y),rstride=1,cstride=1)#rstride,cstride表示繪製的圖形網格疏密,1密。 plt.show()

這裡寫圖片描述

改變顏色和角度

fig = plt.figure()
ax = Axes3D(fig)
X=np.arange(-2,2,0.1)
Y=np.arange(-2,2,0.1)
X,Y=np.meshgrid(X,Y)
def f(x,y):
    return (1-y**5+x**5)*np.exp(-x**2
-y**2) ax.plot_surface(X,Y,f(X,Y),rstride=1,cstride=1,cmap=plt.cm.hot)#rstride,cstride表示繪製的圖形網格疏密,1密。 ax.view_init(elev=20,azim=125)#看圖視角,第一個引數為高度,第二個為旋轉角度 plt.show()

這裡寫圖片描述

3.3D散點圖

fig=plt.figure()
ax = Axes3D(fig)
x=np.random.randint(1,100,100)
y=np.random.randint(1,100,100)
z=np.random.randint(1,100,100)
ax.scatter(x,y,z,marker='*')
ax.set_xlabel('X label')
ax.set_ylabel('Y label')
ax.set_zlabel('Z label')
plt.show()

這裡寫圖片描述