У меня есть датчик, который дает мне сетку времен 8x8, которую я должен отображать на активной тепловой карте.Я сделал рэнд 8х8 для имитации этих данных.Эта тепловая карта должна работать, пока я не скажу, чтобы она больше не запускалась.Я использую python3 и matplotlib, чтобы попробовать эту визуализацию.
Я пытался, как это сделать, включая очистку экрана, превращение plt в фигуру, указание show () не блокировать и т. Д. Многие из моих попыток можно увидеть в комментариях.Он либо отображается только один раз, либо никогда не отображается вообще (например, ion () и plt.show (block = False) никогда не отображают никаких данных).Я ударился головой о стену целых 2 рабочих дня, и я не могу понять, почему она не будет отображаться правильно.
import time
import socket
import matplotlib.pyplot as plt
import numpy as np
import random
first = True
randArray = []
#plt.ion()
plt.show(block=False)
#fig = plt.figure()
#str1 = ''.join(str(e) for e in amg.pixels)
#print (type(str1))
while True:
#create a bunch of random numbers
randArray = np.random.randint(0,50, size=(8,8))
#print the array, just so I know you're not broken
for x in randArray:
print(x)
#This is my attempt to clear.
if (first == False):
plt.clf()
first = False
#basical visualization
plt.imshow(randArray, cmap='hot', interpolation='nearest')
plt.draw()
plt.show()
#fig.canvas.draw()
#plt.canvas.draw()
#plt.display.update
print("Pausing...")
time.sleep(5)
Я ожидаю, что код будет генерировать новый набор чисел каждый5 секунд, а затем обновите экран цветами этих новых чисел.Это должно быть в состоянии работать в течение нескольких часов, если я не прерываю, но экран никогда не обновляется.
Подробнее: я перепробовал все, что перечислено в посте "Как обновить сюжет в matplotlib?"и все, что они делают, делает так, чтобы ни один граф не заполнялся.Средство запуска работает так, как будто оно собирается что-то сделать, показывая на панели задач, но затем ничего не делаетЯ пробовал это на Mac и Pi, оба имеют одинаковую проблему.Может быть, потому, что этому посту 8 лет, а это Python 3, а не Python 2?Может быть, это потому, что я использую imshow () вместо plot ()?Я так и не понял, как заставить их код работать на моей машине.
Редактировать: я получил его для работы на Raspberry Pi благодаря рекомендациям первых комментаторов.Но теперь мне остается задаться вопросом ... что не так с моим Mac ??