Я получаю кучу живых данных с микрофонов.Длина набора данных составляет 4000, и я получаю его 5 раз в секунду.
Я использую python2.7 и matplotlib.Чтобы получить представление о наборах данных:
Если он тихий
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -2, 0, -1, 0, 0, 0, -1, 1, -2, 0, -2, -2, -8, -1, -1, 0, -2, -1, -2, -1, -1, -1, 0, -1, 0, -1, 0, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1,-1, 0, -1, -4, -1, 0, -1, 2, -1, 0, 2, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, ...]
Если он громкий:
[-372, -37, -157, -143, 93, -212, 304, -225, 432, -177, 450, -79, 351, 40, 159, 147, -77, 213, -296, 222, -440, 173, -467, 77, -366, -41, -161, -147, 90, -215, 308, -225, 435, -175, 446, -77, 351, 42, 167, 147, -70, 210, -296, -166, 456, -76, 374, 34, ...]
Мой скрипт на Python:
def plot_data(data):
x = [i for i in range(0, 4000)]
plt.plot(x,data.data)
plt.show()
def listener():
rospy.init_node('listener', anonymous=True)
rospy.Subscriber('/miro/rob01/platform/mics', platform_mics, show_data)
rospy.spin()
if __name__ == '__main__':
listener()
Я бы хотел построить данные и перерисовывать или обновлять каждый раз, когда получаю новый объект данных.Нужно постоянное обновление графика.
График должен выглядеть следующим образом:
Знаете ли вы хороший способ сделать это?