加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将底图颜色栏中的第一个颜色设置为灰色不起作用

发布时间:2020-12-20 11:57:44 所属栏目:Python 来源:网络整理
导读:我正在使用foll.用于在下面的地图中绘制颜色条的代码 import palettable cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap lcmap = [cmap(i) for i in range(cmap.N)] lcmap[0] = (.5,.5,1.0) # force the first color entry to be grey cmap
我正在使用foll.用于在下面的地图中绘制颜色条的代码

import palettable
        cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap
        lcmap = [cmap(i) for i in range(cmap.N)]
        lcmap[0] = (.5,.5,1.0)  # force the first color entry to be grey
        cmap = cmap.from_list('custom cmap',lcmap,cmap.N)  # create the new map

但是,生成的地图的第一种颜色不是灰色.我该如何解决?

解决方法

当我运行cmap定义时,lcmap长度为256个条目,并且在颜色栏或几乎没有最低值的数据集中几乎看不到将第0个条目设置为新颜色.我把它夸大了(1)将新颜色设置为绿色,以获得最大对比度,以及(2)将lcmap的32个最低条目设置为新颜色,这很好.在底图示例文件 plotsst.py中,结果是:

enter image description here

插入此代码以替换定义im1的行:

import palettable
cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap
lcmap = [cmap(i) for i in range(cmap.N)]
for i in range(32):
    lcmap[i] = (0,1.0)
cmap_green = cmap.from_list('0th entry green',cmap.N)

im1 = m.pcolormesh(lons,lats,sst,shading='flat',cmap=cmap_green,latlon=True)

palettable.colorbrewer.sequential.PuRd_9有九个值,正如预期的那样,但将其转换为mpl_colormap会将其平滑为256.

结合@Pablo Reyes的答案,插入的代码是

import palettable
cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap
lcmap = [cmap(i) for i in range(cmap.N)]
lcmap[0] = (0,9)

im1 = m.pcolormesh(lons,latlon=True)

结果是

enter image description here

你去!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读