等高线代码:
# -*- coding:utf-8 -*-#matplotlib等高线import matplotlib.pyplot as pltimport numpy as npdef f(x,y):return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)x=np.linspace(-3,3,100)y=np.linspace(-3,3,100)X,Y=np.meshgrid(x,y)plt.contourf(X,Y,f(X,Y),8,alpha=0.5,cmap=plt.cm.hot)#cmp表示图的颜色,8表示8+1条线#x,y的坐标去掉plt.xticks(())plt.yticks(())plt.show()
图形展示:
添加等高线的描述:
# -*- coding:utf-8 -*-#matplotlib等高线import matplotlib.pyplot as pltimport numpy as npdef f(x,y):return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)x=np.linspace(-3,3,100)y=np.linspace(-3,3,100)X,Y=np.meshgrid(x,y)plt.contourf(X,Y,f(X,Y),8,alpha=0.5,cmap=plt.cm.hot)#cmp表示图的颜色,8表示8+1条线#等高线的描述C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidth=.5)plt.clabel(C,inline=True,fontsize=10)#True表示数值再等高线里面,字体大小是10#x,y的坐标去掉plt.xticks(())plt.yticks(())plt.show()
绘制3D图形:
# -*- coding:utf-8 -*-#matplotlib等高线import matplotlib.pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfig=plt.figure()ax=Axes3D(fig)x=np.arange(-4,4,0.25)y=np.arange(-4,4,0.25)X,Y=np.meshgrid(x,y)R=np.sqrt(X**2 + Y**2)Z=np.sin(R)ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))#rstride、cstride调整图形格子大小,cmap设置颜色plt.show()
效果展示:
再次添加等高线:
# -*- coding:utf-8 -*-#matplotlib等高线import matplotlib.pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfig=plt.figure()ax=Axes3D(fig)x=np.arange(-4,4,0.25)y=np.arange(-4,4,0.25)X,Y=np.meshgrid(x,y)R=np.sqrt(X**2 + Y**2)Z=np.sin(R)ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))#rstride、cstride调整图形格子大小,cmap设置颜色#绘制一个等高线图ax.contourf(X,Y,Z,zdir='z',offser=-2,cmap='rainbow')ax.set_zlim(-2,2)plt.show()
效果展示: