繁体   English   中英

在 ipyvolume 上设置相机视图会提供与 matplotlib 不同的视角

[英]Setting camera view on ipyvolume gives different viewing angle than matplotlib

我正在尝试制作一个交互式笔记本(带有voila ),我在其中使用ipyvolume绘制表面。 但是,我无法使用ipyvolume正确设置相机。 它应该是 z 方向的自上而下视图。 它在matplotlib案例中运行良好,但在ipyvolume中设置相同的角度确实会给我一些 45º 的视图。 我怎样才能让它显示自上而下的视图?

如果有其他方法可以实现这一点,那也可以(需要在voila中工作并能够动态更新 X、Y、Z 和颜色数据)。

制作数据

import pandas as pd
import numpy as np
import ipyvolume as ipv

g = np.linspace(-np.pi/2, np.pi/2, 10)
X, Y = np.meshgrid(g, g, indexing='ij')
Z = np.sin(X**2+Y**2)

ipyvolume plot

fig1 = ipv.figure()
mesh = ipv.plot_surface(X, Z, Y)
ipv.show()
ipv.pylab.view(90,-90)

在此处输入图像描述

matpotib锅

fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(projection='3d')
ax.view_init(90, -90)
ax.set_xlabel('x')
ax.set_ylabel('y')
surf = ax.plot_surface(X, Y, Z)

在此处输入图像描述

看起来你在mesh = ipv.plot_surface(X, Z, Y)中意外交换了YZ ,这可以解释为什么你没有得到你想要的视图。 进行更改后, ipyvolume的默认视图(即ipv.pylab.view(0,0) )似乎就是您想要的视图。 请参阅下面的代码,在 google colab 上测试:

fig1 = ipv.figure()
mesh = ipv.plot_surface(X, Y, Z)
ipv.show()

output 给出:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM