Files
caplot/animation.py
2021-05-17 19:11:15 +02:00

35 lines
645 B
Python

from matplotlib import pyplot as plt
# expect from source:
# - get() -> value
# - name
# - add_callback(cb)
# - disconnect()
# plot_func takes result of source.get()
# returns Plot object
# Plot object has set(val)
class Animation:
def __init__(self, source, plot_func):
value = source.get()
self.plot = plot_func(value)
plt.suptitle(source.name)
source.add_callback(self.update)
try:
plt.show()
finally:
print("disconnect:", source)
source.disconnect()
def update(self, value=None, **kwargs):
self.plot.set(value)
plt.draw()