Python matplotlib颜色栏范围

Python matplotlib颜色栏范围,python,matplotlib,contourf,Python,Matplotlib,Contourf,所以,在搜索了几个小时后,我似乎找不到一个简单的答案来回答我的问题。我有一个填充轮廓图(contourf),我希望颜色栏上显示的值介于-45和45之间 fig, ax = plt.subplots() plt.contourf(time_array, f, half_CP, 30, cmap=cm.seismic, vmin=-45, vmax=45) cb = plt.colorbar() plt.clim(-45,45) clim已经成功地压缩了我的颜色栏中显示的颜色范围,但是我的颜色栏仍

所以,在搜索了几个小时后,我似乎找不到一个简单的答案来回答我的问题。我有一个填充轮廓图(contourf),我希望颜色栏上显示的值介于-45和45之间

fig, ax = plt.subplots()
plt.contourf(time_array, f, half_CP, 30, cmap=cm.seismic, vmin=-45, vmax=45)
cb = plt.colorbar()
plt.clim(-45,45)
clim已经成功地压缩了我的颜色栏中显示的颜色范围,但是我的颜色栏仍然显示从-80到80之间的值。。。换句话说,我的vmin/vmax不工作。我试着把这个参数放在plt.colorbar行中,但是也没有效果


如果这是一件非常简单的事情,我不会感到惊讶,但几个小时以来我一直在努力寻找我所遗漏的错误。我将感谢任何帮助

我通常为轮廓定义一些级别,这也限制了色条的范围

levels = np.arange(-45,45,1)
CS1 = plt.contourf(x,y,z,levels,cmap=cm.get_cmap('RdYlBu_r',len(levels)-1), extend='both')
plt.colorbar(CS1,orientation='vertical',shrink=0.5, format='%.2f')

希望这有帮助。干杯,Trond

我认为您可以手动设置颜色栏的刻度,如中所示。但这可能不是最简单/最好的解决方案。这样做确实设置了正确的刻度位置,但遗憾的是并没有缩短颜色栏。定义级别数确实会迫使颜色栏在这些值之间绘制。然而,这也需要更长的时间来渲染(我通常只使用大约30级,而不是90级!)。当然,有一种更简单的方法可以简单地告诉colorbar只打印-45到45之间的值。它只适用于x轴和y轴,我不明白为什么这样做要困难得多。要使用更少的级别,只需减少级别=no.arange(-45,45,3)