Matplotlib在3D坐标轴中绘制2D多边形
我正在使用matplotlib这个工具来在3D坐标系中绘制一些数据,主要是2D曲线。我用ax = axes3d.Axes3D()
来定义我的坐标轴,然后用ax.plot(x, y, zs='z')
在3D空间中绘制我的2D曲线。
现在我想添加一些东西,类似于这个页面上展示的内容 http://matplotlib.sourceforge.net/examples/mplot3d/polys3d_demo.html,但我想直接输入顶点的坐标。在这个例子中,他们有一个固定的z
数组,并且绘制了顶点为(x,y)
的多边形,而我想要的是z(x)
和(x,y)
的顶点。有没有人知道怎么做到这一点?
其实我并不需要那种集合的东西,我只是想在任意方向上绘制一个大方块。
我尝试直接输入坐标并使用ax.plot()
:
verts = np.array([[0,0,0], [0,1,0], [1,1,1], [1,0,1], [0,0,0]])
ax.plot(verts[:,0], verts[:,1], verts[:,2], zdir='y')
确实绘制了一个方块,但我不知道怎么填充它的表面。
1 个回答
0
我希望这正是你想要的!
我的矩形的范围是从0到10,所以最大值(MAX)是10。
我一开始尝试在z轴和x轴之间定义一个坐标轴。我的选择是z=MAX-x。
接着,我为每一个小的x增量绘制了这个坐标轴,从而创建了矩形。
这是代码:
anArray = []
for i in range(0, 101, 1):
z = float(i)/10
#print "x: ", x
y = 10 - z
#print "y: ", y
for a in range(0, 101, 1):
anArray.append([float(a)/10, y, z])
#endfor
#endfor
verts = np.array(anArray)
ax.plot(verts[:,0],verts[:,1],verts[:,2], zdir='y')