簡體   English   中英

獲取用於顏色調制器調色板的cmap

[英]Obtaining a cmap for color brewer palette

如何獲取來自sns.color_palette()函數的調色板的cmap版本? 例如,我可以要求這樣的啤酒釀造調色板:

sns.color_palette('Blues')

sns.color_palette('Blues', as_cmap=True)

結果導致“ TypeError:color_palette()獲得了意外的關鍵字參數'as_cmap'”。

我當然可以使用sns.choose_colorbrewer_palette() ,它接受as_cmap參數,但它只能在交互模式下工作(我無法在python腳本中要求它提供'Blues' )。

如果要在matplotlib / seaborn函數中使用顏色圖,只需傳遞名稱(例如, plt.pcolormesh(..., cmap="Blues") ),然后matplotlib將知道該怎么做。

如果出於某種原因想要顏色圖對象,則該對象位於matplotlib.cm命名空間中。

只是想添加一些令我困惑的東西。

對於支持它的調色板,如果設置as_cmap=True ,則seaborn創建一個具有256種顏色的調色板,然后要求mpl.ListedColorMap制作一個mpl.ColorMap (它將簡單地在相鄰顏色之間進行插值,將它們視為分開[ 0,1]分成相等的部分)。 在這種情況下, seaborn不使用n_colors參數是有道理的,因為mpl.ColorMap將[0,1]中的函數表示為顏色,並且使用mpl.ListedColorMap創建的顏色越多,函數就越精確是。 (對於大多數應用程序,大概不需要超過256種顏色嗎?)

所以轉換seaborn調色板mpl.ColorMap可以通過產生調色板256個色(假設調色板算法生成的,當然,這樣它會產生許多不同的顏色),然后調用來完成mpl.ListedColorMap 當然,正如@mwaskom指出的那樣,您可以簡單地使用mpl.cm命名空間中的mpl.ColorMap對象。

暫無
暫無

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

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