Python 如何更新pcolormesh

Python 如何更新pcolormesh,python,tensorflow,matplotlib,Python,Tensorflow,Matplotlib,我正在尝试创建一个实时光谱图,扩展本教程的光谱图部分: 我可以使用matplotlib绘制多个绘图,但当我尝试在数据块到达时更新单个绘图时,它无法更新。有关守则如下: spectrogram = None fig, ax = plt.subplots(1) log_spec = (tf.zeros([129, 124], dtype=tf.float32)) height = log_spec.shape[0] X = np.arange(16000, step=height+1) Y = r

我正在尝试创建一个实时光谱图,扩展本教程的光谱图部分: 我可以使用matplotlib绘制多个绘图,但当我尝试在数据块到达时更新单个绘图时,它无法更新。有关守则如下:

spectrogram = None

fig, ax = plt.subplots(1)
log_spec = (tf.zeros([129, 124], dtype=tf.float32))
height = log_spec.shape[0]
X = np.arange(16000, step=height+1)
Y = range(height)
values = ax.pcolormesh(X,Y, log_spec)
plt.ion()
plt.show()

    
def plot_spectrogram(spectrogram):
    log_spec = np.log(tf.transpose(spectrogram))
    log_spec = log_spec[:-1, :-1]
    values.set_array(log_spec.ravel())
    plt.draw()

for x in range (20):
    data = stream.read(CHUNK)
    data_int16=struct.unpack(str(CHUNK)+'h',data)
    waveform = tf.cast(data_int16, tf.float32)
    spectrogram_slice = tf.signal.stft(waveform, frame_length=255, frame_step=128)
    spectrogram_slice = tf.abs(spectrogram_slice)
    if spectrogram is not None:
        spectrogram = tf.concat([spectrogram_slice, spectrogram], 0)
    else:
        spectrogram = spectrogram_slice
    if (spectrogram.shape[0]>124):
        spectrogram = tf.slice(spectrogram, [0,0], [124,129])
        plot_spectrogram(spectrogram)
以下是我的建议:

我没有得到任何错误,绘图初始化正确,零值显示为深紫色,它只是没有更新真实数据

有什么想法吗