我用(比方说)10个轮廓制作等高线图,如下所示:
CS = plt.contour(X, Y, Z, levels=levels)
其中levels
是10个数字的列表。
我对matplotlib使用的颜色非常满意 - 我认为它从默认颜色映射中选择了10种间隔很好的颜色 - 但是如何检索使用的实际颜色? (与RGB值列表一样)。原因是我想构建一个自定义颜色条(通过在plt.hlines
命令中使用这些颜色)。
答案 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))
可能有用。