Skip to main content
 首页 » 编程设计

python之3D 轴中的 Matplotlib 2D 多边形

2025年05月04日11duanxz

我正在使用 matplotlib 将一些数据绘制为 3D 轴中的 2D 曲线。我使用 ax = axes3d.Axes3D() 来定义我的轴和 ax.plot(x, y, zs='z') 在3D空间。

现在我想添加一些类似于此页面上的内容 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') 

它确实绘制了一个正方形,但我不能(或不知道如何)填充脸部。

请您参考如下方法:

希望这就是您想要的!

我的矩形将从 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')