Changes

Jump to navigation Jump to search
1,072 bytes added ,  20:10, 12 February 2022
m
Line 294: Line 294:  
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Ploting live data ===
+
===Ploting live data===
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
 
import random
 
import random
Line 327: Line 327:  
ani = FuncAnimation(plt.gcf(), animate, interval=1000)
 
ani = FuncAnimation(plt.gcf(), animate, interval=1000)
    +
plt.tight_layout()
 +
plt.show()
 +
# ----------------------------------------------------------
 +
# 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.tight_layout()
 
plt.show()
 
plt.show()
 
</syntaxhighlight>
 
</syntaxhighlight>

Navigation menu