1

我目前正在将两个完全不同的数据集绘制成一个 3D 曲面图。当我独立绘制每一个时,一切正常。但是,一旦我将它们绘制成一个,可视化就很奇怪。我按照以下方式进行绘图:

fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X,Y,Z, color=color, antialiased=True)
(get new X,Y, Z values)
ax.plot_surface(X,Y,Z, color=color, antialiased=True)
ax.view_init(30, 360)

输出如下:

输出

如您所见,蓝色数据是正确的,但绿色数据不知何故位于背面,无法正确显示。如果我单独绘制绿色的,它会完美运行。

更改绘图顺序(或玩弄 zorder)不会改变任何东西。

希望有人能帮忙!

4

1 回答 1

0

Matplotlib 只是一个二维绘图库。3d 绘图是通过将 3d 表面投影到图像平面上来实现的。

如果您有多个 3d 表面,它会将每个表面转换为 2d 形状,然后为每个形状计算单个高度,然后按该顺序显示。

据我所知, zorder 选项不起作用,它只会改变表面的顺序。

如果你真的不走运,构成轴网格的灰色框也可以绘制在你的表面上方。这更烦人。

你必须使用matplotlib,然后我想你可以将你的表面分成许多更小的表面,但是这样做你会遇到一个相当大的性能位,你也会覆盖图例中的值。

于 2013-07-14T15:58:46.397 回答