Como alterar vários charts interativos com uma única input em Python

Eu estou tentando fazer vários charts interativos com a biblioteca ipywidgets no Jupyter Notebook. No entanto, enfrento um problema: tento fazer com que vários charts mudem quando um único widget de input é alterado, por exemplo, um controle deslizante.

No MWE adicionado, isso é ilustrado com uma function senoidal e coseno que dependem de um único widget de input que define a amplitude da function seno e cosseno. Assim, se o valor do controle deslizante de input for definido no valor 2, a amplitude da function seno e cosseno deve seguir imediatamente o exemplo.

Se você executasse o código sozinho, verá que os dois sliders se movem juntos perfeitamente. Mas nem os dois charts mudam ao mesmo tempo de acordo.

Alguém tem uma solução para isso? Não necessariamente com ipywidgets?

Agradeço antecipadamente,

Rick

# FIRST JUPYTER NOTEBOOK CELL import matplotlib.pyplot as plt from ipywidgets import * from math import * import numpy as np %matplotlib inline default_value = 1 # Default value of amplutide a = IntSlider(min = 1, max = 10, value = default_value, description = 'Amplitude of sine function') b = IntSlider(min = 1, max = 10, value = default_value, description = 'Amplitude of sine function') mylink = jslink((a, 'value'), (b, 'value')) def widget_sine_function(amp_s = a): x = np.linspace(0,20,100000) # Creat x-values for sine function y = [amp_s*sin(i) for i in x] # Create y-values for sine function with amplitude according to value of widget a plt.clf() plt.figure(figsize=(15,5)) plt.subplot(1, 2, 1) plt.plot(x,y) interact(widget_sine_function) # SECOND JUPYTER NOTEBOOK CELL def widget_cosine_function(amp_c = b): x = np.linspace(0,20,100000) # Creat x-values for cosine function y = [amp_c*cos(i) for i in x] # Create y-values for cosine function with amplitude according to value of widget b plt.clf() plt.figure(figsize=(15,5)) plt.subplot(1, 2, 1) plt.plot(x,y) interact(widget_cosine_function) 

Intereting Posts