【问题标题】:matplotlib custom colorbar unintended discrete colorsmatplotlib 自定义颜色条意外的离散颜色
【发布时间】:2013-09-26 15:49:48
【问题描述】:

我使用来自the matplotlib cookbook 的教程来创建自定义色标。由于某种原因,颜色插值在从 0.8 到 1.0 的步骤中失败。我不确定我在这一步做错了什么,因为只有在相应元组的第二个和第三个数字不同时才会出现离散的颜色步骤。我打算在最后一步从 RGB 0/130/195 到 102/179/218。

顺便说一句,有人知道name 参数在LinearSegmentedColormap 中的用途吗?文档中没有提到。

我正在使用 matplotlib 版本 1.2.1 和 Python 2.7.5

import pylab as P
import numpy as N
cdict = {'red':  ((0.0, 51.0/255, 51.0/255),
                   (0.2, 180.0/255, 180.0/255),
                   (0.4, 175.0/255, 175.0/255),
                   (0.6, 206.0/255, 206.0/255),
                   (0.8, 0.0/255, 0.0/255),
                   (1.0, 102.0/255, 102.0/255)),
    'green':((0.0, 51.0/255, 51.0/255),
                   (0.2, 180.0/255, 180.0/255),
                   (0.4, 200.0/255, 200.0/255),
                   (0.6, 211.0/255, 211.0/255),
                   (0.8, 130.0/255, 130.0/255),
                   (1.0, 217.0/25, 217.0/255)),
    'blue': ((0.0, 51.0/255, 51.0/255),
                   (0.2, 180.0/255, 180.0/255),
                   (0.4, 7.0/255, 7.0/255),
                   (0.6, 106.0/255, 106.0/255),
                   (0.8, 195.0/255, 195.0/255),
                   (1.0, 237.0/255, 237.0/255))
        }
res_map = P.matplotlib.colors.LinearSegmentedColormap('my_cmap',cdict,256)
P.figure()    
P.pcolor(N.reshape(N.linspace(0,100,100*100), (100,100)),cmap=res_map)
P.colorbar()
P.show()

【问题讨论】:

    标签: python matplotlib color-mapping


    【解决方案1】:

    您在最后一个绿色条目中有错字:217.0/25

    这行得通:

    cdict = {'red':  ((0.0, 51.0/255, 51.0/255),
                       (0.2, 180.0/255, 180.0/255),
                       (0.4, 175.0/255, 175.0/255),
                       (0.6, 206.0/255, 206.0/255),
                       (0.8, 0.0/255, 0.0/255),
                       (1.0, 102.0/255, 102.0/255)),
    
            'green':((0.0, 51.0/255, 51.0/255),
                       (0.2, 180.0/255, 180.0/255),
                       (0.4, 200.0/255, 200.0/255),
                       (0.6, 211.0/255, 211.0/255),
                       (0.8, 130.0/255, 130.0/255),
                       (1.0, 217.0/255, 217.0/255)),
    
            'blue': ((0.0, 51.0/255, 51.0/255),
                       (0.2, 180.0/255, 180.0/255),
                       (0.4, 7.0/255, 7.0/255),
                       (0.6, 106.0/255, 106.0/255),
                       (0.8, 195.0/255, 195.0/255),
                       (1.0, 237.0/255, 237.0/255))
            }
    
    res_map = plt.matplotlib.colors.LinearSegmentedColormap('my_cmap',cdict,256)
    

    【讨论】:

    • 天哪,谢谢...我想在继续工作之前先喝杯咖啡-.-
    猜你喜欢
    • 2019-08-08
    • 2014-12-20
    • 2019-10-20
    • 2013-01-06
    • 2012-03-31
    • 2016-06-25
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多