12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # Another way to do it without clearing the Axis
- from itertools import count
- import pandas as pd
- import matplotlib.pyplot as plt
- from matplotlib.animation import FuncAnimation
- plt.style.use('fivethirtyeight')
- x_vals = []
- y_vals = []
- plt.plot([], [], label='Channel 1')
- plt.plot([], [], label='Channel 2')
- def animate(i):
- data = pd.read_csv('data.csv')
- x = data['x_value']
- y1 = data['total_1']
- y2 = data['total_2']
- ax = plt.gca()
- line1, line2 = ax.lines
- line1.set_data(x, y1)
- line2.set_data(x, y2)
- xlim_low, xlim_high = ax.get_xlim()
- ylim_low, ylim_high = ax.get_ylim()
- ax.set_xlim(xlim_low, (x.max() + 5))
- y1max = y1.max()
- y2max = y2.max()
- current_ymax = y1max if (y1max > y2max) else y2max
- y1min = y1.min()
- y2min = y2.min()
- current_ymin = y1min if (y1min < y2min) else y2min
- ax.set_ylim((current_ymin - 5), (current_ymax + 5))
- ani = FuncAnimation(plt.gcf(), animate, interval=1000)
- plt.legend()
- plt.tight_layout()
- plt.show()
|