Plotly - sterowanie suwakiem

Fabuła ma wygodny Slider które można wykorzystać do zmiany widoku data/style wykresu, przesuwając pokrętło na kontrolce umieszczonej na dole renderowanego wykresu.

Slider control składa się z różnych właściwości, które są następujące -

  • steps property jest wymagany do określenia pozycji przesuwania gałki nad sterowaniem.

  • method property ma możliwe wartości jako restyle | relayout | animate | update | skip, wartość domyślna to restyle.

  • args property ustawia wartości argumentów do przekazania do metody Plotly ustawionej w metodzie na slajdzie.

Na wykresie punktowym wdrażamy teraz prostą kontrolkę suwaka, która będzie zmieniać częstotliwość sine wavegdy gałka przesuwa się wzdłuż kontrolki. Suwak jest skonfigurowany na 50 kroków. Najpierw dodaj 50 śladów krzywej sinusoidalnej z rosnącą częstotliwością, wszystkie z wyjątkiem dziesiątego ustawiono na widoczne.

Następnie konfigurujemy każdy krok za pomocą restylemetoda. Dla każdego kroku widoczność wszystkich innych obiektów jest ustawiona nafalse. Na koniec zaktualizuj układ obiektu Figure, inicjując właściwość suwaków.

# 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)

Najpierw, 10th sine waveślad będzie widoczny. Spróbuj przesunąć pokrętło po poziomej kontrolce na dole. Zobaczysz zmianę częstotliwości, jak pokazano poniżej.