summaryrefslogtreecommitdiff
path: root/vis/animation
diff options
context:
space:
mode:
authorzhang <zch921005@126.com>2022-10-30 23:13:29 +0800
committerzhang <zch921005@126.com>2022-10-30 23:13:29 +0800
commit1b105470efecf90fe1a7e153191835cf0c4dfb19 (patch)
treeaeba0fb736e4e9d9e0f050117ca317fab1f2f37e /vis/animation
parentb5c7383a7abfa87396bf585b789c9e0474e12652 (diff)
multiple line plots
Diffstat (limited to 'vis/animation')
-rw-r--r--vis/animation/line_plot_ani.py35
-rw-r--r--vis/animation/multi_line_plot_ani.py40
2 files changed, 75 insertions, 0 deletions
diff --git a/vis/animation/line_plot_ani.py b/vis/animation/line_plot_ani.py
new file mode 100644
index 0000000..21ed9cd
--- /dev/null
+++ b/vis/animation/line_plot_ani.py
@@ -0,0 +1,35 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from matplotlib.animation import FuncAnimation
+
+fig, ax = plt.subplots()
+xdata, ydata = [], []
+ln, = ax.plot([], [], 'ro')
+
+ax.set_xlim(0, 2*np.pi)
+ax.set_ylim(-1, 1)
+
+
+def init():
+ # print('init')
+ ax.set_xlim(0, 2*np.pi)
+ ax.set_ylim(-1, 1)
+ return ln,
+
+
+def animate(i):
+ # print('animate', i)
+ xdata.append(i)
+ ydata.append(np.sin(i))
+ ln.set_data(xdata, ydata)
+ return ln,
+
+
+ani = FuncAnimation(fig,
+ animate,
+ frames=np.linspace(0, 2*np.pi, 128),
+ # init_func=init,
+ blit=True
+ )
+plt.show()
+
diff --git a/vis/animation/multi_line_plot_ani.py b/vis/animation/multi_line_plot_ani.py
new file mode 100644
index 0000000..35b53c6
--- /dev/null
+++ b/vis/animation/multi_line_plot_ani.py
@@ -0,0 +1,40 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from matplotlib.animation import FuncAnimation
+
+fig, axes = plt.subplots(1, 2)
+
+xdata, ydata1, ydata2 = [], [], []
+
+ln1, = axes[0].plot([], [], 'ro')
+ln2, = axes[1].plot([], [], 'go')
+
+
+def init():
+ # print('init')
+ axes[0].set_xlim(0, 2*np.pi)
+ axes[0].set_ylim(-1, 1)
+ axes[1].set_xlim(0, 2*np.pi)
+ axes[1].set_ylim(-1, 1)
+ return ln1, ln2,
+
+
+def animate(i):
+ # print('animate', i)
+ xdata.append(i)
+ ydata1.append(np.sin(i))
+ ln1.set_data(xdata, ydata1)
+
+ ydata2.append(np.cos(i))
+ ln2.set_data(xdata, ydata2)
+ return ln1, ln2,
+
+
+ani = FuncAnimation(fig,
+ animate,
+ frames=np.linspace(0, 2*np.pi, 128),
+ init_func=init,
+ blit=True
+ )
+plt.show()
+