有没有办法使用 plotly 开始已经在特定区域放大的绘图?

Is there a way to start a plot already zoomed on a specific area using plotly?

我有一个用 plotly 制作的散点图(特别是在 Jupyter Notebook 上用 Python API 离线 plotly),如你所知,plotly 使用户可以轻松缩放和构图特定区域,但我希望开始的情节已经集中在我选择的特定区域。

我在文档中找不到任何相关内容(可能是因为我不知道在哪里查找或查找哪些术语)。有没有办法做到这一点,如果是这样,怎么做?使用子图而不是 Figure 对象时设置有何不同?

当您指定 Layout 时,在 xaxisyaxis 参数下,您可以指定 range,例如

import plotly.graph_objs as go

# ...    

layout = go.Layout(
    yaxis=dict(
        range=[0, 100]
    ),
    xaxis=dict(
        range=[100, 200]
    )
)
fig = go.Figure(data=data, layout=layout)

可在 xaxis here and yaxis here.

中找到这方面的文档

如果您的坐标轴包含日期,请确保在设置范围之前将类型指定为日期。否则,您会收到意想不到的结果。

start_date = "2019-09-26"
start_date = "2019-10-18"

fig.update_xaxes(type="date", range=[start_date, end_date])

如果fig由具有共享x轴(或y轴)的子图组成,您可以将上述范围设置为与最后一个共享图对应的行和列。

下面是单列子图,每行一个图,共7行。

last_row = 7
last_col = 1

fig.update_xaxes(type="date", range=[start, end], row=last_row, col=last_col)

如前所述,布局内的范围有效。我无法使用

...
type = "date",
xaxis = dict[date1, date2] 

但将 (POSIXct) 日期转换为数字对我有用。

(没有足够的代表发表评论,但我觉得值得补充的是,如果日期范围不适用,则转换有效)。