Ho due grafici che vorrei rendere interattivi con i widget del taccuino ipython. Il codice seguente è un esempio semplificato di ciò che sto cercando di fare.Posizionamento di grafici interattivi nel widget del taccuino ipython
import matplotlib.pyplot as plt
import IPython.html.widgets as wdg
def displayPlot1(rngMax = 10):
plt.figure(0)
plt.plot([x for x in range(0, rngMax)])
wdg1 = wdg.interactive(displayPlot1, rngMax = wdg.IntSlider(20))
def displayPlot2(rngMax = 10):
plt.figure(1)
plt.plot([x**2 for x in range(0, rngMax)])
wdg2 = wdg.interactive(displayPlot2, rngMax = wdg.IntSlider(10))
wdg.ContainerWidget([wdg.HTML("""<h1>First Plot</h1>"""),
wdg1,
wdg.HTML("""<h1>Second Plot</h1>"""),
wdg2])
Il primo problema è che visualizza tutti i widget prima, e due lotti uno dopo l'altro alla fine:
title1
widget1
title2
widget2
plot1
plot2
Mi piacerebbe avere:
title1
widget1
plot1
title2
widget2
plot2
Inoltre sembra che l'intero output venga sovrascritto non appena tocco uno dei cursori e visualizza solo un grafico (quello che sto cambiando).
Come posso risolvere questo problema? (Potenzialmente posso farlo se li separo in due celle diverse, tuttavia ho intenzione di fare qualcosa di più complesso e alla fine deve essere in una cella)
Ho visto che hai iniziato una taglia, quindi ho pensato che probabilmente sei ancora interessato a una risposta più dettagliata. Ho aggiunto del codice qui sotto che dovrebbe illustrare come farlo. Sono un po 'in ritardo per la taglia, ma forse puoi ancora assegnargli una certa reputazione. –