【问题标题】:Orthonormal axes with 3D Surface in PlotlyPlotly 中具有 3D 曲面的正交轴
【发布时间】:2018-09-07 15:13:30
【问题描述】:

我没有成功在 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 在 3D 图形中将立方体视为立方体和任何形状吗?

奥利维尔。

【问题讨论】:

  • 这个来自 docs 的 example 不是您想要实现的目标?
  • 在这个例子中,我们确实有正交轴,但这是由于提供的数据。如果您更改 x = [0, 0, 10, 10, 0, 0, 10, 10] 之类的值,那么即使形状不再是立方体,结果仍然看起来像立方体。

标签: python plotly


【解决方案1】:

这是诀窍:

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)

结果如下:

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 1970-01-01
    • 2018-05-06
    • 2021-12-06
    • 1970-01-01
    • 2017-02-08
    • 2017-10-31
    • 2019-03-16
    • 2016-10-14
    相关资源
    最近更新 更多