Plotly,x和y轴的比例相同

far*_*awa 11 python plotly

我正在使用plotly for python而我无法设置xy轴因此它们可以具有相同的比例:

这是我的布局:

layout = Layout(
    xaxis=XAxis(
        range=[-150, 150],
        showgrid=True,
        zeroline=True,
        showline=True,
        gridcolor='#bdbdbd',
        gridwidth=2,
        zerolinecolor='#969696',
        zerolinewidth=4,
        linecolor='#636363',
        linewidth=6
    ),
    yaxis=YAxis(
        range=[-150,150],
        showgrid=True,
        zeroline=True,
        showline=True,
        gridcolor='#bdbdbd',
        gridwidth=2,
        zerolinecolor='#969696',
        zerolinewidth=4,
        linecolor='#636363',
        linewidth=6
    )
)
Run Code Online (Sandbox Code Playgroud)

然后我得到这样的东西!

在此输入图像描述

为什么x和y的比例不同?这将影响我的可视化.

如何获得带方形单元格的网格?

Bru*_*rut 22

最后,实现了此功能.

layout = go.Layout(yaxis=dict(scaleanchor="x", scaleratio=1))
Run Code Online (Sandbox Code Playgroud)

请参阅此处的示例https://plot.ly/python/axes/#fixed-ratio-axes.

  • 有没有办法为3D绘图做到这一点?我试过`go.Layout(zaxis = dict(scaleanchor ="x",scaleratio = 1))``但这不起作用. (3认同)
  • @Ray参见:https://community.plot.ly/t/creating-a-3d-scatterplot-with-equal-scale-along-all-axes/15108,以及:https://plot.ly/ python / 3d-axes / (3认同)

小智 6

您可以在布局中为高度宽度指定相同的长度.这是一个例子:

layout = Layout(
    xaxis=XAxis(
       range=[-150, 150],
       showgrid=True,
       zeroline=True,
       showline=True,
       gridcolor='#bdbdbd',
       gridwidth=2,
       zerolinecolor='#969696',
       zerolinewidth=4,
       linecolor='#636363',
       linewidth=6
    ),
    yaxis=YAxis(
        range=[-150,150],
        showgrid=True,
        zeroline=True,
        showline=True,
        gridcolor='#bdbdbd',
        gridwidth=2,
        zerolinecolor='#969696',
        zerolinewidth=4,
        linecolor='#636363',
        linewidth=6
   ),
   height=600,
   width=600,
)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果有图例,这将不起作用,因为图例也占用了这 600 个像素中的一些。@Brut 的回答更可靠。 (3认同)