【问题标题】:How do I plot a hexagon in 3D using matplotlib [duplicate]如何使用 matplotlib 在 3D 中绘制六边形 [重复]
【发布时间】:2019-01-23 19:58:52
【问题描述】:

我通过搜索尝试了几件事,但我在理解顶点或至少大脑褪色的东西上缺少一些东西,有人可以帮助我吗?我需要一个正六边形

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection

fig = plt.figure(figsize=(15,9))
ax = fig.add_subplot(111, projection='3d')

x = [0, 2, 1, 1,1,1]
y = [0, 0, 1, 0, 1,1]
z = [0, 0, 0, 1,1,1]

vertices = [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3],[0,1,2],[0,1,2]]

tupleList = list(zip(x, y, z))

poly3d = [[tupleList[vertices[ix][iy]] for iy in range(len(vertices[0]))] for ix in range(len(vertices))]
ax.scatter(x,y,z)
ax.add_collection3d(Poly3DCollection(poly3d, facecolors='w', linewidths=1, alpha=0.5))
ax.add_collection3d(Line3DCollection(poly3d, colors='k', linewidths=0.2, linestyles=':'))

plt.show()

【问题讨论】:

  • 我不确定我理解你想要什么。六边形是二维的。你想要六边形的形状吗?
  • 是的,我需要六角面
  • 多少?还是只有一个六边形?
  • 我需要一个六边形,里面我需要一个虚线:)

标签: matplotlib plot 3d


【解决方案1】:

Matplotlib 不能用于真正的 3D。 matplotlib 中的 3D 东西主要是为了更好地呈现 2D 数据。 如果您需要真正的 3D 可视化,我推荐 Mayavi 或 VTK。

如果您的六边形不能表示为 2 个变量的数学函数(例如 z = f(x,y) ),那么 matplotlib 是错误的工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多