Python 实时绘制动态光谱图
我基本上有三个数据点在三个单独的numpy数组中,我想沿着x轴绘制时间,沿着y轴绘制频率,幅度应该代表颜色。但这一切都是实时发生的,所以当数据更新时,光谱图应该看起来像是在画自己 我对代码进行了简化,以显示我正在运行一个最多需要10 ms才能运行的循环,在此期间,我从函数中获取新数据Python 实时绘制动态光谱图,python,numpy,matplotlib,spectrogram,vispy,Python,Numpy,Matplotlib,Spectrogram,Vispy,我基本上有三个数据点在三个单独的numpy数组中,我想沿着x轴绘制时间,沿着y轴绘制频率,幅度应该代表颜色。但这一切都是实时发生的,所以当数据更新时,光谱图应该看起来像是在画自己 我对代码进行了简化,以显示我正在运行一个最多需要10 ms才能运行的循环,在此期间,我从函数中获取新数据 import numpy as np import random from time import sleep def new_val_freq(): return random.randint(0,22)
import numpy as np
import random
from time import sleep
def new_val_freq():
return random.randint(0,22)
def new_val_mag():
return random.randint(100,220)
x_axis_time = np.array([1])
y_axis_frequency = np.array([10])
z_axis_magnitude = np.array([100])
t = 1
while True:
x_axis_time = np.append (x_axis_time , [t+1])
t+=1
y_axis_frequency = np.append (y_axis_frequency , [new_val_freq()])
z_axis_magnitude = np.append (z_axis_magnitude, [new_val_mag()])
time.sleep(0.01)
#Trying to figure out how Create/Update spectrogram plot with above additional
#data in real time without lag
理想情况下,我希望这是尽可能快,而不是必须重新绘制整个光谱图。matplolib似乎不适合绘制动态光谱图,我还没有遇到任何动态光谱图示例,因此我想知道如何才能做到这一点?您可以用您正在使用的代码填写“创建光谱图”部分吗?简而言之,如果您使用的是imshow,那么您应该使用
set\u data
方法。这在使用pcolormesh时也是可能的,但我认为制作pcolormesh动画要困难得多,这就是我一直试图弄明白的。如何在没有任何延迟的情况下实时绘制光谱图。我使用了matplotlib动画概念,它可以绘制从麦克风获得的声音的频谱图。但是,无论我如何减少interval
参数,这也很慢。即使是创建静态光谱图的代码也会很有帮助