Plotly 简明教程

Plotly - Slider Control

Plotly 有一个方便的 Slider ,可用于通过滑动位于渲染绘图底部的控件上的旋钮,更改绘图的 data/style 视图。

Slider control 由不同的属性组成,如下所示 −

  1. steps property 用于定义控件上位移位置。

  2. method property 可能具有 restyle | relayout | animate | update | skip, 值,默认值为 restyle

  3. args property 设置在滑动时要传递给在方法上设置的 Plotly 方法 set 的参数值。

我们现在在散点图上部署一个简单的滑块控件,该控件将使 sine wave 的频率随着旋钮沿着控件滑动而变化。滑块配置为有 50 个步骤。首先添加 50 条具有递增频率的正弦波曲线,除第 10 条迹线外,其余所有迹线都设置为可见。

然后,我们使用 restyle 方法配置每个步骤。对于每一步,所有其他步骤对象都将可见性设置为 false 。最后,通过初始化 sliders 属性来更新 Figure 对象的布局。

# Add traces, one for each slider step
for step in np.arange(0, 5, 0.1):
fig.add_trace(
   go.Scatter(
      visible = False,
      line = dict(color = "blue", width = 2),
      name = "𝜈 = " + str(step),
      x = np.arange(0, 10, 0.01),
      y = np.sin(step * np.arange(0, 10, 0.01))
   )
)
fig.data[10].visible=True

# Create and add slider
steps = []
for i in range(len(fig.data)):
step = dict(
   method = "restyle",
   args = ["visible", [False] * len(fig.data)],
)
step["args"][1][i] = True # Toggle i'th trace to "visible"
steps.append(step)
sliders = [dict(active = 10, steps = steps)]
fig.layout.update(sliders=sliders)
iplot(fig)

首先, 10th sine wave 迹线将可见。尝试沿底部水平控件滑动旋钮。你将看到频率发生变化,如下所示。

sine wave trace