【发布时间】:2017-12-22 12:37:54
【问题描述】:
我知道 matplotlib 不是 3D 可视化的最佳选择,但我已经尝试过让 Mayavi 等其他软件包正常工作(我的 openGL 版本阻止了它)。
我的问题是,当我创建一个 3D 绘图并旋转它时,根据我旋转绘图的历史,绘图可能会变形。
当我从初始位置旋转到绘图的顶视图时,我得到了我所期望的。但是,当我从侧视图旋转到顶视图时(您可以将ax.view_init(45,-90,) 更改为ax.view_init(45,0,) 以从“侧视图”开始),图像明显失真。
Here 是我描述的四个视图。图一是“前视图”。图 2 是从“前视图”旋转后的“俯视图”。图 3 是“侧视图”。图4是从“侧视图”旋转后的“顶视图”。
我用来创建绘图的代码(虽然不是实际的表面)如下。我正在使用 matplotlib 2.0.0。我希望这就是所有需要的。我预计这可能无法修复,但我希望您能提供任何意见。
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.view_init(45,-90,)
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
plt.xlim(0,pL)
plt.ylim(0,pW)
ax.set_aspect("equal")
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])
ax.grid(False)
plt.show()
这样我的情节就可以复制了:
ax.plot_trisurf(x,y,z, linewidth=0.2, antialiased=True)
x=[-2.8284271247461898,0,2.8284271247461907,5.6568542494923806,-2.8284271247461898,0,8.4852813742385713,11.313708498984761,3.3137084989847598,6.1421356237309492,14.142135623730953,16.970562748477143,8.9705627484771409,11.798989873223331,19.798989873223331,22.627416997969522,14.627416997969521,17.45584412271571,25.45584412271571,28.284271247461902,20.284271247461902,23.112698372208094,24,26.828427124746192]
y=[2.8284271247461894,5.6568542494923797,-2.8284271247461903,0,8.4852813742385695,11.313708498984759,-2.8284271247461898,0,8,10.82842712474619,-2.8284271247461898,0,8,10.82842712474619,-2.8284271247461898,0,8,10.82842712474619,-2.8284271247461898,0,8,10.82842712474619,4.284271247461902,7.1126983722080919]
z=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
【问题讨论】:
标签: python matplotlib graph-visualization