为什么单击下拉菜单选项会重置 x 范围?
Why clicking on dropdown menu option resets the x-range?
我正在玩 Plotly 以学习制作交互式图表和仪表板,但我遇到了一个我无法理解的关于下拉菜单功能的奇怪行为。
绘图与按钮一起正确显示。单击其中一个选项可以有效地更改绘图内容,但需要注意的是,范围将重置为数据集的默认值。作为示例,我将代码简化为最小表达式。
from plotly.subplots import make_subplots
buttons = [ dict( method='update', label='b1', visible=True, args=[{'y':[[1,2,3]], 'type':'scatter'}] ),
dict( method='update', label='b2', visible=True, args=[{'y':[[30,20,10]],'type':'scatter'}] )]
fig = make_subplots()
fig.add_scatter(x=[2,4,6], y=[1,2,3]) \
.update_xaxes(range=[-10, 10])\
.update_layout(updatemenus=[{'buttons':buttons}])
执行这段代码returns x 轴范围在[-10,10] 内的绘图(正确)。但是,选择任何下拉选项时,X范围会将数据集的基本范围恢复为[2,6](不正确)。
我认为我对 button/layout 更新做错了,因为我也无法更改任何其他属性作为颜色,(例如,我尝试将 line_color : 'red'
添加到 args 列表, 没有效果), 所以我有点迷茫.
你知道我做错了什么吗?
我刚刚删除了绘图类型,现在轴没有重置,我在下面的代码中冻结了 x 轴和 y 轴
from plotly.subplots import make_subplots
buttons = [ dict( method='update', label='b1', visible=True, args=[{'y':[1,2,3]}] ),
dict( method='update', label='b2', visible=True, args=[{'y':[30,20,10]}] )]
fig = make_subplots()
fig.add_scatter(x=[2,4,6], y=[1,2,3]) \
.update_layout(updatemenus=[{'buttons':buttons}]) \
.update_xaxes(range=[-10, 10]) \
.update_yaxes(range=[0, 30])
我正在玩 Plotly 以学习制作交互式图表和仪表板,但我遇到了一个我无法理解的关于下拉菜单功能的奇怪行为。
绘图与按钮一起正确显示。单击其中一个选项可以有效地更改绘图内容,但需要注意的是,范围将重置为数据集的默认值。作为示例,我将代码简化为最小表达式。
from plotly.subplots import make_subplots
buttons = [ dict( method='update', label='b1', visible=True, args=[{'y':[[1,2,3]], 'type':'scatter'}] ),
dict( method='update', label='b2', visible=True, args=[{'y':[[30,20,10]],'type':'scatter'}] )]
fig = make_subplots()
fig.add_scatter(x=[2,4,6], y=[1,2,3]) \
.update_xaxes(range=[-10, 10])\
.update_layout(updatemenus=[{'buttons':buttons}])
执行这段代码returns x 轴范围在[-10,10] 内的绘图(正确)。但是,选择任何下拉选项时,X范围会将数据集的基本范围恢复为[2,6](不正确)。
我认为我对 button/layout 更新做错了,因为我也无法更改任何其他属性作为颜色,(例如,我尝试将 line_color : 'red'
添加到 args 列表, 没有效果), 所以我有点迷茫.
你知道我做错了什么吗?
我刚刚删除了绘图类型,现在轴没有重置,我在下面的代码中冻结了 x 轴和 y 轴
from plotly.subplots import make_subplots
buttons = [ dict( method='update', label='b1', visible=True, args=[{'y':[1,2,3]}] ),
dict( method='update', label='b2', visible=True, args=[{'y':[30,20,10]}] )]
fig = make_subplots()
fig.add_scatter(x=[2,4,6], y=[1,2,3]) \
.update_layout(updatemenus=[{'buttons':buttons}]) \
.update_xaxes(range=[-10, 10]) \
.update_yaxes(range=[0, 30])