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

When you specify your Layout, under the xaxis and yaxis parameters, you can specify a range, e.g.

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)

Documentation for this can be found for the xaxis here and yaxis here.


If your axis includes dates, then make sure you specify the type as date before setting the range. Otherwise, you'll receive unexpected results.

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

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

If the fig consists of subplots with shared x axes (or y axes), you can set the above range to the row and column corresponding to the last shared plot.

The following is for a single-column subplot with each a graph plot in each row, totalling 7 rows.

last_row = 7
last_col = 1

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