python matplotlib:检索等高线图中使用的颜色

时间:2015-09-01 03:51:22

标签: python matplotlib colors contour

我用(比方说)10个轮廓制作等高线图,如下所示:

CS = plt.contour(X, Y, Z, levels=levels)

其中levels是10个数字的列表。

我对matplotlib使用的颜色非常满意 - 我认为它从默认颜色映射中选择了10种间隔很好的颜色 - 但是如何检索使用的实际颜色? (与RGB值列表一样)。原因是我想构建一个自定义颜色条(通过在plt.hlines命令中使用这些颜色)。

2 个答案:

答案 0 :(得分:4)

如果您想要10个级别的颜色映射jet

import matplotlib.cm as cm

cm.jet(np.linspace(0, 1, 10))
Out[31]: 
array([[ 0.        ,  0.        ,  0.5       ,  1.        ],
       [ 0.        ,  0.        ,  0.99910873,  1.        ],
       [ 0.        ,  0.37843137,  1.        ,  1.        ],
       [ 0.        ,  0.83333333,  1.        ,  1.        ],
       [ 0.30044276,  1.        ,  0.66729918,  1.        ],
       [ 0.66729918,  1.        ,  0.30044276,  1.        ],
       [ 1.        ,  0.90123457,  0.        ,  1.        ],
       [ 1.        ,  0.48002905,  0.        ,  1.        ],
       [ 0.99910873,  0.07334786,  0.        ,  1.        ],
       [ 0.5       ,  0.        ,  0.        ,  1.        ]])

返回是RGBA值的数组。

答案 1 :(得分:0)

值得注意的是:contourf 返回的对象有一个 get_cmap 方法,所以

   cf = plt.contourf( ... )
   cmap = cf.get_cmap()
   colors = cmap(np.linspace(0, 1, 10))

可能有用。