Я запускаю скрипт на Raspberry Pi, где я беру некоторые данные с акселерометра и хочу постоянно обновлять график. Я прочитал и посмотрел несколько видео на YouTube, и я решил использовать анимацию Matplotlib.
Теперь все вроде работает, но сюжет не прорисовывается до того, как я KeyboardInterrupt скрипта. И я понимаю почему, потому что функция plot находится внутри l oop. Я пытался вытащить его из l oop, но тогда он вообще не работает.
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
style.use("fivethirtyeight")
import time
import board
import busio
import adafruit_tca9548a
import adafruit_adxl34x
i2c = busio.I2C(board.SCL, board.SDA)
tca = adafruit_tca9548a.TCA9548A(i2c)
ad1 = adafruit_adxl34x.ADXL345(tca[0])
ad2 = adafruit_adxl34x.ADXL345(tca[2])
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
def animate(i):
G = []
while True:
x,y,z = ad2.acceleration
acc = [x,y,z]
acc_abs = [abs(a) for a in acc]
i = acc_abs.index(max(acc_abs))
stor = acc[i]
if stor>0:
stor = stor-10.52
elif stor<0:
stor = stor+10.52
time.sleep(1)
G.append(stor)
ax1.clear()
ax1.plot(G)
ani = animation.FuncAnimation(fig,animate,interval =1000)
plt.show()