python matplotlib:检索等高线图中使用的颜色
python matplotlib: retrieving colors used in contour plot
我用(比如说)10 个等高线制作等高线图,如下所示:
CS = plt.contour(X, Y, Z, levels=levels)
其中 levels
是一个包含 10 个数字的列表。
我对 matplotlib 使用的颜色非常满意 - 我认为它从默认颜色图中选择了 10 种间隔很好的颜色 - 但我如何检索实际使用的颜色? (就像 RGB 值列表一样)。原因是我想构建一个自定义颜色条(通过在 plt.hlines
命令中使用这些颜色)。
如果你想要 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. ]])
return 是一个 RGBA 值数组。
值得注意:contourf
返回的对象有一个get_cmap
方法,所以
cf = plt.contourf( ... )
cmap = cf.get_cmap()
colors = cmap(np.linspace(0, 1, 10))
可能会有用。
我用(比如说)10 个等高线制作等高线图,如下所示:
CS = plt.contour(X, Y, Z, levels=levels)
其中 levels
是一个包含 10 个数字的列表。
我对 matplotlib 使用的颜色非常满意 - 我认为它从默认颜色图中选择了 10 种间隔很好的颜色 - 但我如何检索实际使用的颜色? (就像 RGB 值列表一样)。原因是我想构建一个自定义颜色条(通过在 plt.hlines
命令中使用这些颜色)。
如果你想要 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. ]])
return 是一个 RGBA 值数组。
值得注意:contourf
返回的对象有一个get_cmap
方法,所以
cf = plt.contourf( ... )
cmap = cf.get_cmap()
colors = cmap(np.linspace(0, 1, 10))
可能会有用。