【问题标题】:Matplotlib 2D polygon in 3D axesMatplotlib 3D 轴中的 2D 多边形
【发布时间】:2011-05-02 23:14:43
【问题描述】:

我正在使用 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')

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

【问题讨论】:

    标签: python 3d matplotlib plot


    【解决方案1】:

    我希望这是你想要的!

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

    【讨论】:

      猜你喜欢
      • 2019-05-08
      • 2017-12-07
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2010-09-30
      • 2012-12-15
      • 1970-01-01
      相关资源
      最近更新 更多