簡體   English   中英

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.        ]])

返回的是一個 RGBA 值數組。

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

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

可能有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM