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

两盒软妹~` 提交于 2021-01-27 04:49:00

问题


I have a scatter plot made with plotly (specifically offline plotly with the Python API on a Jupyter Notebook) and as you know, plotly makes it easy for the user to zoom and frame specific areas, but I'd like the plot to start already focussed on a specific area of my choosing.

I can't find anything relevant in the documentation (maybe because I don't know where to look or what terms to look up). Is there a way to do this, and if so, how? And how does the setting differ when using subplots rather than a Figure object?


回答1:


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.




回答2:


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)


来源:https://stackoverflow.com/questions/54863027/is-there-a-way-to-start-a-plot-already-zoomed-on-a-specific-area-using-plotly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!