Как я могу быстро построить динамические c данные, которые полностью изменяются в matplotlib? - PullRequest
0 голосов
/ 14 июля 2020

Я получаю данные сигнала от датчика, это означает, что данные обычно полностью меняются. Я пытаюсь построить 2 графика. Один из участков - это спектральные данные, расположенные сверху. Второй график - это 2-й водопад данных во времени. Нижний график опускается вниз и заполняется вверху каждый раз при поступлении данных.

введите описание изображения здесь

С моим текущим методом построения графиков это очень медленно. Мне интересно, есть ли способ ускорить это. Я не думаю, что могу анимировать, потому что верхний график полностью меняется, а нижний график добавляет данные сверху по мере движения вниз.

Я в основном перерисовываю каждую строку. Вот пример кода того, что я делаю.

import matplotlib.pyplot as plt
import numpy as np

# outside data loop
fig, axs = plt.subplots(2, figsize=(9,6))
image = np.empty(300, data_size)


# inside data loop
modifyImage(data)
f = np.arange(0, 500, 500.0/len(data))
axs[0].plot(f, data, color='yellow')
axs[1].imshow(image, interpolation='none')
plt.draw()
plt.pause(.0001)
axs[0].clear()
axs[1].clear()

Функция изменения изображения принимает данные и модифицирует изображение, обрезая нижнюю строку изображения с помощью склейки и складывая данные сверху row.

Есть способ лучше сделать это? Мне нужно, чтобы данные были быстро заполнены для обоих графиков. Данные передаются мне в виде 1d-массива, то есть по одной строке за раз. Итак, все мои графики должны выполняться изнутри l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...