我正在使用Plotly,并且想制作一个图表,因为我可以从下拉列表中选择不同的图表。当我放大并使用我创建的下拉菜单选择其他图形时,我希望图形重置缩放以适合新图形。
我制作了一个最小的工作示例,其中包含两个图表,以及一个下拉菜单以切换显示哪个图表。我希望这些图形一直缩放到原始视图(或适合当前数据),类似于在UI中按Plotly的“重置轴”按钮时所实现的效果。使用下拉菜单切换图表有效,但是我不知道如何重置缩放级别。我编写了以下代码,以在Jupyter笔记本中运行:
import plotly.offline as py
import plotly.graph_objs as go
import numpy as np
plotly.offline.init_notebook_mode(connected=True)
data1 = np.sin(0.01*np.arange(1000))
data2 = 3*np.cos(0.02*np.arange(1000))
def select_one_trace_mask(i, l):
selection = [False] * l
selection[i] = True
return selection
def get_user_trace(data):
return go.Scattergl(
x = np.arange(len(data)),
y = data,
visible = True,
)
buttons = [{"label": "Show all",
"method": "update",
"args": [{"visible": [True, True], "yaxis.autorange": True, "xaxis.autorange": True}]},
{"label": "Show SIN",
"method": "update",
"args": [{"visible": [True, False], "yaxis.autorange": True, "axis.autorange": True}]},
{"label": "Show COS",
"method": "update",
"args": [{"visible": [False, True], "yaxis.autorange": True, "axis.autorange": True}]}
]
updatemenus = list([
dict(
buttons=buttons
)
])
layout = go.Layout(updatemenus = updatemenus, autosize = True)
data = [get_user_trace(d) for d in [data1, data2]]
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='jupyter-table1')
如何配置Plotly,以便在切换下拉菜单时重置缩放级别?