我想知道是否有办法在pcolormesh
绘图中更改颜色条的值而不更改绘图本身的颜色。当我手动设置颜色条的值时,它总是改变它绘制图片的方式。原始图片如下:
图片看起来正确,但我希望颜色条与y轴匹配到第一个图。因此,我手动将vmin/vmax
更改为这些值。我得到的是
显然,相对而言,它取的是图像的值,它们都是零。有没有一种简单的方法可以手动调整颜色条的显示值而不改变它绘制图像的方式?
第一张图片的原始代码如下:
import matplotlib.pyplot as plt
from scipy import signal
CF = 2400
fs = 100
plt.figure(figsize=(15,10))
ax1 = plt.subplot(211)
plt.ylabel('Amplitude [dBm]')
plt.xlabel('Frequency [MHz]')
plt.plot(freqArray, dbmArray)
ax2 = plt.subplot(212, sharex = ax1)
f, time, Sxx = signal.spectrogram(dataArray, fs, nfft=4096)
plt.gca().set_xlim([min(f+CF), max(f+CF)])
plt.pcolormesh(f+CF, time*(1e-3), Sxx.T)
plt.xlabel('Frequency [MHz]')
plt.ylabel('Time [ms]')
plt.gca().invert_yaxis()
plt.colorbar()
plt.show()
对于第二张图片,唯一的区别是
plt.pcolormesh(f+CF, time*(1e-3), Sxx.T, vmin=min(dbmArray), vmax=max(dbmArray))