python之matplotlib绘制函数z=x^2+y^2三维图 | 您所在的位置:网站首页 › y平方=x图像 › python之matplotlib绘制函数z=x^2+y^2三维图 |
绘制三维图入门:Z=X^2 + Y^2 步骤: 1.先绘制出三维坐标 2.定义函数表达式 3.绘制三维图像 1.先绘制出三维坐标 from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D #此模块并非不没有作用,如果缺少了会/ #引起三维坐标的创建报出异常: ValueError: Unknown projection '3d fig = plt.figure() ax1 = plt.axes(projection="3d") plt.show()2.定义函数表达式 from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np fig = plt.figure() ax1 = plt.axes(projection="3d") x = np.arange(-5,5,0.1) y = np.arange(-5,5,0.1) Z = x**2+y**2 ax1.plot3D(x,y,Z,"gray") plt.show()
问题:我想绘制的是三维图像,而不是一条曲线,因此我查找原因,发现三维图像是需要网格数据,而我只定义了一个二维数据,因此只显示的为一条曲线,于是我在代码中添加网络数据采集函数(X,Y = np.meshgrid(x,y)),最终得以解决。 meshgrid函数介绍: meshgrid函数生成绘制3D图形所需的网格数据。在计算机中进行绘图操作时, 需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y) 功能:绘制z=x^2 + y^2 三维图像 时间:2019/10/1 """ from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np plt.figure() ax = plt.axes(projection="3d") x = np.arange(-5,5,0.1) y = np.arange(-5,5,0.1) X,Y = np.meshgrid(x,y) # 2生成绘制3D图形所需的网络数据 Z = X**2+Y**2 ax.plot_surface(X,Y,Z,alpha=0.5,cmap="winter") #生成表面,alpha用于控制透明度 #ax.contour(X,Y,Z,zdir="x",offset=-6,cmap="rainbow") #x轴投影 #ax.contour(X,Y,Z,zdir="y",offset=6,cmap="rainbow") #y轴投影 #ax.contour(X,Y,Z,zdir="z",offset=-3,cmap="rainbow") #z轴投影 ax.set_xlabel("X") #设置X、Y、Z 坐标范围 ax.set_xlim(-6,6) #设置X、Y、Z 轴 ax.set_ylabel("Y") ax.set_ylim(-6,6) ax.set_zlabel("Z") plt.show()
注意:纸上得来终觉浅,绝知此事要躬行。 |
CopyRight 2018-2019 实验室设备网 版权所有 |