有没有办法使用 matplotlib 使颜色栏仅显示一系列值?
Is there a way to make the colorbar show only a range of values using 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' , va='bottom' , ha='center', rotation='vertical', rotation_mode= 'anchor',transform=ax.transAxes)
plt.title('SSS')
plt.show()
请注意颜色条仍然显示 4.8 - 37.2,但我希望它只包含 26 - 37.2(或更高)。
我尝试将 vmin 放入:
cbar = plt.colorbar(x, vmin=26, fraction=.046, pad=0.04)
但它无法识别 vmin,因此无法正常工作。
以上网友正确回答:
np.linspace(26,40,50) or say np.arange(26,40,0.5) instead of np.arange(26,40,50)
我正在绘制海面盐度图,我只想显示高于特定阈值 (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' , va='bottom' , ha='center', rotation='vertical', rotation_mode= 'anchor',transform=ax.transAxes)
plt.title('SSS')
plt.show()
请注意颜色条仍然显示 4.8 - 37.2,但我希望它只包含 26 - 37.2(或更高)。
我尝试将 vmin 放入:
cbar = plt.colorbar(x, vmin=26, fraction=.046, pad=0.04)
但它无法识别 vmin,因此无法正常工作。
以上网友正确回答:
np.linspace(26,40,50) or say np.arange(26,40,0.5) instead of np.arange(26,40,50)