如何在 plotly 中修改网格尺寸?
How to modify grid dimension in plotly?
我有一个 X 值列表,一个 Y 值列表,对于每一对 (X,Y),我有一个矩阵形式的值 Z。
我想在 python 中使用 plotly 来表示它并修改绘制表面的网格,使 x 轴比平时大,得到矩形的形状。
考虑以下示例:
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x = np.arange(1, 22, 1)
y = np.array([1, 3.1, 5.7, 10, 15, 20])
mean = [0]*21
cov = np.identity(21)
z = np.random.multivariate_normal(mean, cov, 18)
data = [go.Surface(x=x, y=y, z=z)]
py.plot(data)
这里,x轴和y轴在网格中的长度相同,但我希望x轴的长度是实际长度的两倍。我一直在 plotly 中寻找一种比例参数,但没有找到答案。
您可以在图的布局中手动设置坐标轴的纵横比:
data = [go.Surface(x=x, y=y, z=z)]
layout = go.Layout(
scene = go.layout.Scene(
aspectmode='manual',
aspectratio=go.layout.scene.Aspectratio(
x=2, y=1, z=0.5
))
)
fig = go.Figure(data=data, layout=layout)
py.plot(fig)
这会将 X 轴设置为 Y 轴的两倍,将 Z 轴设置为 Y 轴的一半:
我有一个 X 值列表,一个 Y 值列表,对于每一对 (X,Y),我有一个矩阵形式的值 Z。
我想在 python 中使用 plotly 来表示它并修改绘制表面的网格,使 x 轴比平时大,得到矩形的形状。
考虑以下示例:
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x = np.arange(1, 22, 1)
y = np.array([1, 3.1, 5.7, 10, 15, 20])
mean = [0]*21
cov = np.identity(21)
z = np.random.multivariate_normal(mean, cov, 18)
data = [go.Surface(x=x, y=y, z=z)]
py.plot(data)
这里,x轴和y轴在网格中的长度相同,但我希望x轴的长度是实际长度的两倍。我一直在 plotly 中寻找一种比例参数,但没有找到答案。
您可以在图的布局中手动设置坐标轴的纵横比:
data = [go.Surface(x=x, y=y, z=z)]
layout = go.Layout(
scene = go.layout.Scene(
aspectmode='manual',
aspectratio=go.layout.scene.Aspectratio(
x=2, y=1, z=0.5
))
)
fig = go.Figure(data=data, layout=layout)
py.plot(fig)
这会将 X 轴设置为 Y 轴的两倍,将 Z 轴设置为 Y 轴的一半: