【问题标题】:How to plot proper 3D axes in MayaVi, like those found in Matplotlib如何在 MayaVi 中绘制正确的 3D 轴,就像在 Matplotlib 中找到的那样
【发布时间】:2014-08-10 01:50:58
【问题描述】:

我想知道如何在 MayaVi 的 3D 曲面图上设置正确的轴。我能创造的最好的轴看起来像this...

但是,如果我要进行演示或将这些放在海报上,这些看起来就不是很专业。

我希望轴看起来像 this...

这些轴看起来更专业,比默认的 MayaVi 轴更容易阅读。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 您使用的是哪个 MayaVi 版本?
  • 您的问题基本上是“我不喜欢默认的 mayavi 轴,如何获得更好的轴?”在我看来,这并不是一个很好的问题,尽管它可能是一个重要的功能要求。您的问题的答案是,这就是轴在 VTK 中的外观。如果你对他们不满意,你有几个选择。您可以四处寻找不同的库来满足您的需求,您可以尝试很好地询问 mayavi/vtk 开发人员是否会实现您的功能,或者您可以自己编写。
  • 刚刚遇到了同样的问题。虽然我同意“这就是 VTK 的外观”,但这并不是一个令人满意的答案。在我看来,这个问题使得 mayavi 对于科学应用几乎毫无用处,因为你永远无法发布看起来如此怪异的图。正在寻找替代品...R 似乎很有希望

标签: python matplotlib plot 3d mayavi


【解决方案1】:

我也有这个问题。 我通过不显示 mayavi 轴,而是使用 plot3d() 绘制我需要自己的轴来破解了一个糟糕的解决方法

from mayavi import mlab
import numpy as np
xx = yy = zz = np.arange(-0.6,0.7,0.1)
xy = xz = yx = yz = zx = zy = np.zeros_like(xx)    
mlab.plot3d(yx,yy+lensoffset,yz,line_width=0.01,tube_radius=0.01)
mlab.plot3d(zx,zy+lensoffset,zz,line_width=0.01,tube_radius=0.01)
mlab.plot3d(xx,xy+lensoffset,xz,line_width=0.01,tube_radius=0.01)

您现在可以使用 text3d() 添加标签和注释 非常不雅和蛮力,但在紧要关头工作。

【讨论】:

  • 我认为这很好。只需将其存储为准备调用的函数即可。没有那么多蛮力... ;)
猜你喜欢
  • 2014-06-28
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
相关资源
最近更新 更多