【问题标题】:Python: 2D wireframe plot from predefined trianglesPython:来自预定义三角形的 2D 线框图
【发布时间】:2017-04-10 17:59:36
【问题描述】:

使用 Python 以线框形式绘制现有三角形的最佳方法是什么?

澄清一下:

我有两组数据:一组包含 X、Y 坐标对,另一组是将这些点映射到“理想”(Delaunay)网格的算法的输出。

例如,考虑 X、Y 对::

  #X Y
1 330822.25 4310194.75
2 330827.25 4310194.75
3 330832.25 4310194.75
4 330837.25 4310194.75
5 330842.25 4310194.75
6 330847.25 4310194.75
...

以及算法输出:

    1717        1761        1762
    1718        1717        1762
    1718        1673        1717
    1718        1674        1673
    1673        1674        1629
    1629        1674        1630

其中 X、Y 对 #1717 与 X、Y 对 #1761 和 #1762 形成一个三角形。

也就是说,Delaunay算法输出的第一行可以表示为:

    (331037.25 4310004.75)        (331037.25 4309999.75)        (330822.25 4309994.75)

这形成了一个三角形。在将这两个数据集映射到类似于上述三个元组的集合之后,我想绘制这些线中存在的每个三角形。

有什么建议吗?如果这可以扩展到 3D,则可以加分!

【问题讨论】:

标签: python matplotlib plot gis mesh


【解决方案1】:

您可以跳过手动计算 Delaunay 三角剖分的步骤,让 matplotlib 处理它。这是使用triplot 完成的。

plt.triplot(x, y)

其中xy 是您的初始数据中的两列。

如果您真的想使用自己的算法,可以使用第三个参数triangles 将您的索引放入plt.triplot

plt.triplot(x, y, triangles=triangles)

其中 triangles 是 indizes 的 (N, 3) 数组。

complete example 可以在 matplotlib 页面上找到。

【讨论】:

  • 这是完美。谢谢!
猜你喜欢
  • 2012-03-16
  • 2019-01-29
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多