【问题标题】:Setting first color in basemap colorbar to gray not working将底图颜色栏中的第一种颜色设置为灰色不起作用
【发布时间】:2017-02-07 01:55:07
【问题描述】:

我正在使用foll。在下面的地图中绘制颜色条的代码

        import palettable
        cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap
        lcmap = [cmap(i) for i in range(cmap.N)]
        lcmap[0] = (.5, .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

但是,生成的地图没有第一个颜色为灰色。我该如何解决?

【问题讨论】:

    标签: python matplotlib matplotlib-basemap


    【解决方案1】:

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

    从插入此代码替换定义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, .5, 0, 1.0)
    cmap_green = cmap.from_list('0th entry green', lcmap, 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, .5, 0, 1.0)
    cmap_green = cmap.from_list('0th entry green', lcmap, 9)
    
    im1 = m.pcolormesh(lons,lats,sst,shading='flat',cmap=cmap_green,latlon=True)
    

    结果是

    你去!

    【讨论】:

      【解决方案2】:

      不要使用cmap.N,而是使用您拥有的段数,9:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-19
        相关资源
        最近更新 更多