相关疑难解决方法(0)

如何在matplotlib色彩映射中重新定义特定值的颜色

我想rainbow在图像中使用色彩映射imshow.它工作得很好,但我想重新定义价值的颜色0.我想用白色而不是暴力.

我想只为零值执行此操作,所有其他值可以保留在colormap中的默认值.

任何想法如何做到这一点,无需手动编辑色彩映射?

python matplotlib color-mapping

23
推荐指数
1
解决办法
3万
查看次数

在带有离散色条的pcolormesh图中使用扩展

我正在尝试创建带有离散色条的pcolormesh图。输出应满足以下条件:

  1. 第一层应该是白色的
  2. 数据应在某种程度上切断
  3. 截止上方的数据应具有单独的颜色(即颜色图的最后一种颜色)

我快到了,但是'extend'关键字的行为不符合我的期望(“ max-arrow”中的颜色与上一级的颜色相同-参见示例)。如何将“ vmax”以上的值设置为单独的颜色(即,我使用的任何颜色图的最后一种颜色)

import numpy as np
import xarray as xr
import matplotlib as mpl
import matplotlib.pyplot as plt

ds = xr.Dataset(
    coords={'lon': np.arange(-180, 180, 10),
            'lat': np.arange(-85, 90, 10)},
    data_vars={'data': (('lat', 'lon'), np.random.rand(18, 36))})

cmap = plt.cm.get_cmap('Reds')
cmap.set_under('w')
# cmap.set_over()  # do something here?
levels = np.arange(0, .7, .1)
ds.data.plot.pcolormesh(
    cmap=cmap,
    vmin=levels[1],
    # vmax=levels[-1],
    extend='max',
    norm = mpl.colors.BoundaryNorm(levels, ncolors=cmap.N, clip=False)
)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我正在使用xarray,但是plt.pcolormesh的行为是相同的:

p = plt.pcolormesh(
    np.arange(-180, 180, 10),
    np.arange(-85, 90, 10),
    np.random.rand(18, 36),
    cmap=cmap, …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib colorbar colormap

5
推荐指数
1
解决办法
2176
查看次数

标签 统计

matplotlib ×2

python ×2

color-mapping ×1

colorbar ×1

colormap ×1

plot ×1