0

我使用matplotlib 食谱中的教程来创建自定义色阶。由于某种原因,颜色插值在从 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()

不想要的输出

4

1 回答 1

3

您在最后一个绿色条目中有错字: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)

在此处输入图像描述

于 2013-09-26T07:49:48.893 回答