从绘图 3d 图中抓取相机位置

Ily*_*rov 9 python 3d plotly

我正在绘制 3D 图形并想要调整相机位置。对我来说最好的方法是使用查看器,根据需要缩放和旋转场景,然后以 JSON 形式获取相机位置并将其放入我的脚本中,该脚本生成图片以默认实现相同的位置。

根据此推文,它应该可以正常工作,但事实并非如此。

我的代码是:

from plotly.graph_objs import Scatter3d, Layout, Scene
from plotly.offline import iplot
import plotly
from numpy import sin, cos, linspace, pi, zeros_like

plotly.offline.init_notebook_mode()

t = linspace(0, 4*pi)

trace1 = Scatter3d(
    x = t,
    y = cos(t),
    z = sin(t),
    mode = 'lines'
)

layout = Layout(
                width = 600, 
                height = 600, 
                scene = Scene(
                    xaxis = {'title': 't'},
                    yaxis = {'title': 'x'},
                    zaxis = {'title': 'y'},
                    camera =
                      {'eye':{'x':0,'y':1,'z':0}, 
                       'up': {'x':0,'y':0,'z':1}, 
                       'center': {'x':0,'y':0,'z':0}}
                )
)
iplot(dict(data=[trace1], layout=layout))
Run Code Online (Sandbox Code Playgroud)

然后我得到一张图片:

绘图

单击“在云端保存并编辑”,切换到绘图界面,调整相机位置并单击“查看 JSON”,仍然获得我在布局中指定的默认相机位置。

json

etp*_*ard 0

这是预期的行为。

在将相机位置发送到plot.ly 云之前,plotly.js 不会保存相机位置。您需要将图形保存在plot.ly/plot的plotly 工作区中,以便更新其camera属性。