Files
code_snippets/Python/Matplotlib/09-LiveData/snippets.txt
T
2019-06-18 09:46:20 -06:00

49 lines
1013 B
Plaintext

# 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()