Я получаю данные сигнала от датчика, это означает, что данные обычно полностью меняются. Я пытаюсь построить 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.