我已使用matplotlib绘制函数Ez,该函数是x和y的函数。 x变量从0到0.1,y变量从0到0.3。换句话说,x长度是y长度的三分之一。
该代码的绘图示例如下:
ax = Axes3D(plt.figure(1))
ax.plot_surface(X,Y,Ez,cmap='hot')
ax.contour(X,Y,Ez,zdir="x",offset=xmin) #contour projection on x, y, z axes
ax.contour(X,Y,Ez,zdir="y",offset=ymax)
ax.contour(X,Y,Ez,zdir="z",offset=-2.0)
ax.set_xlim3d(xmin, xmax)
ax.set_ylim3d(ymin, ymax)
ax.set_zlim3d(-2, 1.5)
ax.set_xlabel('X Label') #set axes labels
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
出于某些奇怪的原因,即使我不强迫它们相等,x和y轴也始终显示为相等的长度。如果在方面选择“自动”模式,它将再次显示相同的内容。我不确定使用plot_surface时如何获得真实比例。
如果我使用基于mayavi的mlab,它会正常运行,但是,我更喜欢使用matplotlib。您能否建议我如何获得表面图的真实比例。
我使用上面的图得到的图像如下 !(https://drive.google.com/file/d/1KT66lBbTCIyDWouyOrIu5oW_EG-UREBR/view?usp=sharing)
感谢您的帮助。
最诚挚的问候