【问题标题】:Python matplotlib colorbar rangePython matplotlib 颜色栏范围
【发布时间】:2016-01-18 01:42:09
【问题描述】:

因此,在搜索了几个小时后,我似乎无法找到我的问题的简单答案。我有一个填充的等高线图 (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 行中,但这也没有任何效果。

如果它是超级简单的东西,我不会感到惊讶,但我一直试图找出错误/错误/我现在错过了几个小时。我将不胜感激!

【问题讨论】:

  • 我认为您可以手动设置颜色条的刻度,如this example。但这可能不是最简单/最好的解决方案。
  • 这样做确实设置了正确的刻度位置,但遗憾的是不会缩短颜色条。

标签: python matplotlib contourf


【解决方案1】:

我通常会为轮廓定义多个级别,这也限制了颜色条的范围。

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

希望这会有所帮助。干杯,特隆德

【讨论】:

  • 定义级别数确实会强制颜色条在这些值之间进行绘图。但是,这也需要更长的时间来渲染(我通常只使用大约 30 个级别,而不是 90 个!)。当然,有一种更简单的方法可以简单地告诉颜色条仅绘制 -45 和 45 之间的值。它仅适用于 x 和 y 轴,我很困惑为什么这样做要困难得多。
  • 要使用更少的关卡,只需减少它们levels=no.arange(-45,45,3)
猜你喜欢
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 2017-04-18
相关资源
最近更新 更多