Spaces:
Build error
Build error
File size: 1,434 Bytes
4b13d90 e179fa3 4d5c5c8 4b13d90 4d5c5c8 4b13d90 4d5c5c8 73a4e01 4d5c5c8 4b13d90 4d5c5c8 73a4e01 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import reacton
import solara
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
import matplotlib.animation as animation
zoom = solara.reactive(2)
center = solara.reactive((20, 0))
class PauseAnimation:
def __init__(self):
self.fig = Figure()
ax = self.fig.subplots()
ax.set_title('Click to pause/resume the animation')
x = np.linspace(-0.1, 0.1, 1000)
# Start with a normal distribution
self.n0 = (1.0 / ((4 * np.pi * 2e-4 * 0.1) ** 0.5)
* np.exp(-x ** 2 / (4 * 2e-4 * 0.1)))
self.p, = ax.plot(x, self.n0)
self.animation = animation.FuncAnimation(
self.fig, self.update, frames=200, interval=50, blit=True)
self.paused = False
self.fig.canvas.mpl_connect('button_press_event', self.toggle_pause)
def toggle_pause(self, *args, **kwargs):
if self.paused:
self.animation.resume()
else:
self.animation.pause()
self.paused = not self.paused
def update(self, i):
self.n0 += i / 100 % 5
self.p.set_ydata(self.n0 % 20)
return (self.p,)
def get_fig(self):
return self.fig
@solara.component
def Page():
# do this instead of plt.figure()
#fig = Figure()
#ax = fig.subplots()
#ax.plot([1, 2, 3], [1, 4, 9])
pa = PauseAnimation()
return solara.FigureMatplotlib(pa)
|