gpt4 book ai didi

python - matplotlib 基线倾斜的 3d 多边形图

转载 作者:行者123 更新时间:2023-12-01 05:05:59 25 4
gpt4 key购买 nike

我正在尝试创建我自己的 3D 多边形图版本,如 Matplotlib 网站上所示:

http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#polygon-plots

我的版本在这里:

http://hastebin.com/laqekeceru.py

示例数据:

http://hastebin.com/vocagogihu.coffee

两个不同视角的图像输出如下:

正如您在图像中所看到的,图表的基线开始稳定地向上倾斜。

我尝试了教程版本,效果很好,但数据明显较少。

这是 matplotlib 中的错误吗?是我的代码吗?

我正在使用:

  • Windows 7
  • Python 2.6
  • numpy==1.8.0
  • matplotlib==1.3.1(最新版本)

提前致谢。

最佳答案

这仅与多边形有关,与 3d 无关。

您的 PolyCollection 是形成闭合多边形的点的集合。 “蠕动”基线实际上是多边形的一侧,即从每个多边形的最后一个点到第一个点的隐式线。

为了说明这一点,请参阅:

import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection

# some sample data
data = [(0,.5), (1,.7), (2,.3), (3,.6), (4,.2)]

fig = plt.figure()
ax = fig.add_subplot(111)

# draw the polygon
p = PolyCollection([data], facecolor=(1,0,0,.5), edgecolor='none')
ax.add_collection(p)

# draw the line
d = np.array(data)
ax.plot(*zip(*data), color='k', linewidth=2)

这个简单的例子给出:

enter image description here

要解决此问题,您需要在多边形的末端添加零:

import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection

# some sample data
data = [(0,.5), (1,.7), (2,.3), (3,.6), (4,.2)]

fig = plt.figure()
ax = fig.add_subplot(111)

# draw the polygon
# pad the data:
data.insert(0, (data[0][0],0))
data.append((data[-1][0], 0))

p = PolyCollection([data], facecolor=(1,0,0,.5), edgecolor='none')
ax.add_collection(p)

# draw the line, note that the padded points are not drawn
d = np.array(data)
ax.plot(*zip(*data[1:-1]), color='k', linewidth=2)

现在斜线消失了:

enter image description here

如果您需要在多边形边缘绘制曲线,则需要单独绘制它(因为多边形边缘是您不想显示的东西)。

关于python - matplotlib 基线倾斜的 3d 多边形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com