如何更改 matplotlib 中颜色条的范围?

问题描述 投票:0回答:1

我正在尝试绘制海洋表面硝酸盐图(从 NOAA 下载)。我在调整颜色条同时保留绘图的其他元素时遇到问题。我希望颜色条的范围为 0-8,所有大于 8 的值都表示为色谱的顶端。

import cartopy.crs as ccrs
import cartopy
from matplotlib import pyplot as plt
import cartopy.feature as cfeature
import numpy as np
import xarray as xr

nit = 'https://www.ncei.noaa.gov/thredds-ocean/dodsC/ncei/woa/nitrate/all/1.00/woa18_all_n00_01.nc'

nitr= xr.open_dataset(nit, decode_times=False)
nitr

variables = ['n_an']
nitr[variables]

nitr_5 = nitr.n_an.sel(depth=5,  method='nearest')
nitr_5

fig = plt.figure(figsize=(9,6))
ax = plt.axes(projection=ccrs.Robinson())
ax.coastlines()
ax.gridlines()
nitr_5.plot(ax=ax, transform=ccrs.PlateCarree(), vmin=2, vmax=30, cbar_kwargs={'shrink': 0.4}, cbar)
ax.set_title("")

上面的代码应该是可重现的——当我尝试使用 .colorbar 参数来执行此操作时,它给了我一个单独的空白颜色条,因此我正在寻找一个能够使用数据集实现的解决方案!

matplotlib figure colorbar
1个回答
0
投票

xarray 包通过

cbar_kwargs
字典控制颜色条,该字典被传递给
matplotlib.figure.Figure.colorbar
。通过检查其文档,您可以找到相关参数
ticks
extend
。尝试使用这些
cbar_kwargs

cbar_kwargs={'shrink': 0.4, 'ticks': list(range(9)), 'extend': 'max'}
© www.soinside.com 2019 - 2024. All rights reserved.