有没有办法使用 matplotlib 使颜色条仅显示一系列值?

问题描述

我正在绘制海面盐度图,我只想显示高于某个阈值 (26) 的盐度值。我正确更改了颜色图,以便使用函数显示

vmin = 26

颜色图很好,但颜色图仍然显示小于 26 的值......颜色条是否有类似 vmin 的函数

这是我的情节:

fig = plt.figure(figsize=(15,5))
ax = plt.axes(projection=ccrs.PlateCarree())
ax.set_extent([-90,8,5,85],crs=ccrs.PlateCarree())
x = ax.contourf(sss_md.longitude,sss_md_tm.latitude,sss_md_tm,100,cmap='jet',vmin=26)
ax.coastlines()
#ax.add_feature(cfeature.LAND,zorder=100,edgecolor='k')
gridlines = ax.gridlines(draw_labels=True)
cbar = plt.colorbar(x,fraction=.046,pad=0.04)
cbar.set_label('SSS',labelpad=15,y=.5,rotation=270)
ax.text(.5,-.12,'Longitude',va='bottom',ha='center',rotation='horizontal',rotation_mode= 'anchor',transform=ax.transAxes)
ax.text(-.1,.5,'Latitude',rotation='vertical',transform=ax.transAxes)
plt.title('SSS')
plt.show()

my map

请注意颜色栏仍然显示 4.8 - 37.2,但我希望它只包含 26 - 37.2(或更高)。

我尝试将 vmin 放入:

cbar = plt.colorbar(x,vmin=26,pad=0.04)

但它无法识别 vmin,因此无法正常工作。

解决方法

以上用户的正确答案:

np.linspace(26,40,50) or say np.arange(26,0.5) instead of np.arange(26,50)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...