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

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

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

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

  1. fig, axes = plt.subplots(nrows=1, ncols=1, figsize=[10,8])
  2. agree_all_land.topo.plot(cmap='viridis', levels=np.linspace(0,5,6))
  3. axes.set_xlabel('longitude (degrees east)')
  4. axes.set_ylabel('latitude (degrees north)')
iovurdzv

iovurdzv1#

你可以试试这个:

  1. import xarray as xr
  2. import numpy as np
  3. coords = dict(lon=np.arange(360), lat=np.arange(90))
  4. nlon, nlat = len(coords["lon"]), len(coords["lat"])
  5. low, high = 0, 8
  6. ticks = np.arange(low, high + 1)
  7. data = np.random.randint(low=0, high=8, size=(nlon, nlat))
  8. da = xr.DataArray(data, coords=coords)
  9. plot = da.plot.pcolormesh(
  10. levels=ticks - 0.5,
  11. cbar_kwargs=dict(ticks=ticks),
  12. )

展开查看全部

相关问题