matplotlib 为每个颜色条值指定一种颜色

2sbarzqh  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(179)

我有一个数据集(agree_all_land),它只包含整数(i.即0、1、2、3、4、5)。当我绘制它时,我得到以下结果:

然而,例如,不清楚哪种颜色代表0与1。我希望每个值都有自己的颜色。也就是说,在colorbar中应该有六种颜色(0,1,2,3,4,5各一种),并且每种颜色的刻度都应该以该颜色为中心。我该怎么做?下面是我的代码:

fig, axes = plt.subplots(nrows=1, ncols=1, figsize=[10,8])

agree_all_land.topo.plot(cmap='viridis', levels=np.linspace(0,5,6))

axes.set_xlabel('longitude (degrees east)')
axes.set_ylabel('latitude (degrees north)')
iovurdzv

iovurdzv1#

你可以试试这个:

import xarray as xr
import numpy as np

coords = dict(lon=np.arange(360), lat=np.arange(90))
nlon, nlat = len(coords["lon"]), len(coords["lat"])
low, high = 0, 8
ticks = np.arange(low, high + 1)

data = np.random.randint(low=0, high=8, size=(nlon, nlat))

da = xr.DataArray(data, coords=coords)

plot = da.plot.pcolormesh(
    levels=ticks - 0.5,
    cbar_kwargs=dict(ticks=ticks),
)

相关问题