Тепловая карта Animate Array в реальном времени - PullRequest
0 голосов
/ 08 мая 2019

С Python3, Numpy, Matplotlib, Anaconda, Spyder: у меня есть массив, который со временем меняется, и я хочу анимировать его тепловую карту. Сейчас я уже нашел множество способов сделать это, но ни один из них, похоже, не работает.

Я попробовал каждый из трех способов этого парня:

https://gist.github.com/take-iwiw/43b1d8bc1dcfd2f0bf19a81486985d59

Ни один из них не работал как предполагалось. В Spyder ни один не работал вообще, поэтому я попытался запустить его через Visual Code Studio, где только третий был на самом деле анимирован, но он находился в большей (пустой) сетке и не выглядел в целом правильным.

Поэтому я искал больше и наткнулся на этот пост:

Отображение в реальном времени изменяющейся тепловой карты Python

Это был новый подход и очень точно то, что я хотел. Я попробовал это сделать, но в Spyder он просто показывает первое изображение, а в коде Visual Studio он показывает первые два, как и должно, а затем окно анимации вылетает.

Вот код из DrV из этой последней ссылки, хотя у меня есть ощущение, что это не может быть проблемой:

import matplotlib.pyplot as plt
import numpy as np
import time

# create the figure
fig = plt.figure()
ax = fig.add_subplot(111)
im = ax.imshow(np.random.random((10,10)))
plt.show(block=False)

# draw some data in loop
for i in range(10):
    # wait for a second
    time.sleep(1)
    # replace the image contents
    im.set_array(np.random.random((10,10)))
    # redraw the figure
    fig.canvas.draw()

Я хотел бы иметь несколько плавную анимацию этого случайного массива. Команда time.sleep предназначена только для имитации времени вычислений, в котором нуждается моя программа, и мой массив не будет полностью случайным, а также заполнен только +1 или -1. Мне не нужны оси или какая-либо дополнительная информация, хотя было бы неплохо, если бы я мог напечатать значение рядом с ним (которое анимируется вместе с ним).

Мне кажется, проблема в том, как я выполняю программу. Я очень новичок в программировании, но раньше я делал похожие анимации на Scilab и Fortran, что было сравнительно легко, поэтому я спрашиваю себя, что я делаю неправильно.

...