python – 使用Matplotlib绘制2D数组
发布时间:2020-12-20 13:30:58 所属栏目:Python 来源:网络整理
导读:所以我有一个2D数组(名为Data),如下所示: Shape 0 Shape 1 ... Shape N ------- ------- -------Scale 0 | Value00,Value01 ... Value0N |Scale 1 | Value10,Value11 ... Value1N | . . .Scale N | ValueN0,ValueN1 ... ValueNN | 我想创建一个3D图,其中Val
所以我有一个2D数组(名为Data),如下所示:
Shape 0 Shape 1 ... Shape N ------- ------- ------- Scale 0 | Value00,Value01 ... Value0N | Scale 1 | Value10,Value11 ... Value1N | . . . Scale N | ValueN0,ValueN1 ... ValueNN | 我想创建一个3D图,其中ValueXXs是Z轴.我尝试了两次尝试,但是每个尝试给我一个相对于另一个旋转的表面,所以我让自己有点困惑.这是我第一次尝试解决方案: x,y = numpy.mgrid[0:50:50j,0:50:50j] f = Data fig = plt.figure() ax = Axes3D(fig) ax.plot_surface(x,y,f,rstride=1,cstride=1) 这是我的第二次尝试: nx,ny = 50,50 x = range(nx) y = range(ny) hf = plt.figure() ha = hf.add_subplot(111,projection='3d') X,Y = numpy.meshgrid(x,y) ha.plot_surface(X,Y,Data,cstride=1) 检查X和Y确实没有帮助,因为它是一个正方形.我不确定X代表我的’Scale’时代表我的’Shape’. 那么,这两个例子究竟发生了什么?有没有更好的方法来绘制这个数组? 谢谢! 解决方法
如果我理解你是正确的,那么混淆的轴是哪个,对吧?如果是这种情况,您可以轻松绘制已知的不对称形状,并且该图将告诉您所有内容.例如,采用
an example from the gallery:
# By Armin Moser from mpl_toolkits.mplot3d import Axes3D import matplotlib import numpy as np from matplotlib import cm from matplotlib import pyplot as plt step = 0.04 maxval = 1.0 fig = plt.figure() ax = fig.add_subplot(111,projection='3d') # create supporting points in polar coordinates r = np.linspace(0,1.25,50) p = np.linspace(0,2*np.pi,50) R,P = np.meshgrid(r,p) # transform them to cartesian system X,Y = R*np.cos(P),R*np.sin(P) #Z = ((R**2 - 1)**2) Z = (X**2 + 0.2*Y**2 -1)**2 # <------- edit ax.plot_surface(X,Z,cstride=1,cmap=cm.jet) #ax.set_zlim3d(0,1) ax.set_xlabel(r'$phi_mathrm{real}$') ax.set_ylabel(r'$phi_mathrm{im}$') ax.set_zlabel(r'$V(phi)$') plt.show() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |