如何在不改变绘图颜色的情况下更改颜色条的值?

时间:2016-06-09 18:44:53

标签: python python-3.x matplotlib plot colorbar

我想知道是否有办法在pcolormesh绘图中更改颜色条的值而不更改绘图本身的颜色。当我手动设置颜色条的值时,它总是改变它绘制图片的方式。原始图片如下:

enter image description here

图片看起来正确,但我希望颜色条与y轴匹配到第一个图。因此,我手动将vmin/vmax更改为这些值。我得到的是

enter image description here

显然,相对而言,它取的是图像的值,它们都是零。有没有一种简单的方法可以手动调整颜色条的显示值而不改变它绘制图像的方式?

第一张图片的原始代码如下:

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))

0 个答案:

没有答案