Python Plotly中具有三维曲面的正交轴

Python Plotly中具有三维曲面的正交轴,python,plotly,Python,Plotly,在Plotly中,我未成功使用scaleanchor进行曲面打印: x = np.linspace(0,9,100) y = np.linspace(0,3,100) mx, my = np.meshgrid(x,y) mz = np.sin(my) * np.cos(mx) trace = go.Surface(x=mx, y=my, z=mz) layout = go.Layout( yaxis={'scaleanchor':'x'}, # zaxis={'scalea

在Plotly中,我未成功使用
scaleanchor
进行曲面打印:

x = np.linspace(0,9,100)
y = np.linspace(0,3,100)

mx, my = np.meshgrid(x,y)
mz = np.sin(my) * np.cos(mx)

trace = go.Surface(x=mx, y=my, z=mz)
layout = go.Layout( 
    yaxis={'scaleanchor':'x'},
    # zaxis={'scaleanchor':'x'},
)
py.iplot([trace], layout)
两个问题:

  • 布局中不允许使用
    zaxis
  • yaxis={'scaleanchor':'x'}
    无效,顶部的立方体不是正方形。下面是我想从顶部得到的结果(1在x和y中的长度相同):

结束

import matplotlib.pylab as plt
plt.axes().set_aspect('equal', 'datalim')
plt.contour(mx, my, mz)
你知道如何用Plotly将立方体视为立方体和三维图形中的任何形状吗

奥利维尔。

这里是诀窍:

layout = go.Layout( 
    scene = {'aspectmode':'data'},
)

trace = go.Surface(x=mx, y=my, z=mz)
fig = go.Figure(data=[trace], layout=layout)
py.iplot(fig)
结果如下:


文档中的这一点并不是您想要达到的效果?在本例中,我们确实有正交轴,但这是由于提供的数据。如果更改值,如
x=[0,0,10,10,0,0,10,10]
,则即使形状不再是立方体,结果仍然看起来像立方体。