Plotly:当滑块用于显示顺序直方图时,强制 x 轴范围保持不变
Plotly: Force x-axis range to remain constant when slider is used to display sequential histograms
这是一个相对简单的问题,但我找不到足够的文档来做我想做的事。当滑块每天移动时,我希望 x 轴保持不变。
这是供参考的图形和滑块。请注意,x 轴的范围为 appx。 -3.25 到 3:
然后,如果我移动滑块,x 轴现在的范围约为-3 到 4.
如何强制最小和最大 x 轴值保持不变?
示例代码如下:
import numpy as np
import plotly.express as px
from plotly.offline import plot
total_days = 3
data = list()
for day in range(total_days):
data.append(plotly.graph_objs.Histogram(
x=np.random.randn(500) + day * 0.5,
name='Day {}, control'.format(day),
visible=day < 1
)
)
steps = list()
for i in range(total_days):
step = dict(
method='restyle',
args=['visible', [False] * total_days * 2],
label='Day {}'.format(i)
)
step['args'][1][i] = True
steps.append(step)
sliders = [dict(
active=0,
steps=steps
)]
layout = dict(sliders=sliders)
fig = dict(data=data, layout=layout)
plot(fig)
尝试按如下方式更新布局字典:
layout = dict(sliders=sliders,
xaxis=dict(range=[-3, 3],
autorange=False))
其中:
range
定义了x-axis的最小值和最大值(本例中为-3和3),见https://plotly.com/python/reference/layout/xaxis/#layout-xaxis-range.
autorange = False
确保范围保持固定,而不是根据输入数据重新计算,请参阅 https://plotly.com/python/reference/layout/xaxis/#layout-xaxis-autorange。
这是一个相对简单的问题,但我找不到足够的文档来做我想做的事。当滑块每天移动时,我希望 x 轴保持不变。
这是供参考的图形和滑块。请注意,x 轴的范围为 appx。 -3.25 到 3:
然后,如果我移动滑块,x 轴现在的范围约为-3 到 4.
如何强制最小和最大 x 轴值保持不变?
示例代码如下:
import numpy as np
import plotly.express as px
from plotly.offline import plot
total_days = 3
data = list()
for day in range(total_days):
data.append(plotly.graph_objs.Histogram(
x=np.random.randn(500) + day * 0.5,
name='Day {}, control'.format(day),
visible=day < 1
)
)
steps = list()
for i in range(total_days):
step = dict(
method='restyle',
args=['visible', [False] * total_days * 2],
label='Day {}'.format(i)
)
step['args'][1][i] = True
steps.append(step)
sliders = [dict(
active=0,
steps=steps
)]
layout = dict(sliders=sliders)
fig = dict(data=data, layout=layout)
plot(fig)
尝试按如下方式更新布局字典:
layout = dict(sliders=sliders,
xaxis=dict(range=[-3, 3],
autorange=False))
其中:
range
定义了x-axis的最小值和最大值(本例中为-3和3),见https://plotly.com/python/reference/layout/xaxis/#layout-xaxis-range.autorange = False
确保范围保持固定,而不是根据输入数据重新计算,请参阅 https://plotly.com/python/reference/layout/xaxis/#layout-xaxis-autorange。