[英]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.