簡體   English   中英

將Matplotlib色彩圖轉換為深淺的調色板

[英]Converting a matplotlib colourmap to a seaborn colour palette

我已經根據自己選擇的顏色制作了一個色圖,但是我想將其轉換為可以用來“色調”海洋圖的調色板。 這有可能嗎?

我用過...

cmap = pl.colors.LinearSegmentedColormap.from_list("", ["red","white"],gamma=0.5,N=len(hue))

...為了制作自己的顏色圖,我知道這是可行的,因為它可以成功地應用於標准的matplotlib.pyplot.scatter圖 ,如下所示。

plt.scatter(x=[1,2,3,4,5],y=[1,2,3,4,5],c=[5,4,3,2,1],cmap=cmap)

單擊此處查看輸出,因為它不會讓我嵌入圖像

但是,我試圖使用seaborn的swarmplot函數並將色表作為色相參數傳遞。 顯然,這不起作用,因為此參數需要調色板-因此,我的問題是!

我不太確定從哪里開始! 任何幫助,將不勝感激!

淡藍色的調色板是簡單的顏色列表。 您可以通過獲取顏色

cmap(np.linspace(0,1,cmap.N))

完整的例子:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import seaborn as sns

df  =pd.DataFrame({"x" : np.random.randint(0,4, size=200),
                   "y" : np.random.randn(200),
                   "hue" : np.random.randint(0,4, size=200)})

u = np.unique(df["hue"].values)
cmap = mcolors.LinearSegmentedColormap.from_list("", ["indigo","gold"],gamma=0.5,N=len(u))

sns.swarmplot("x", "y", hue="hue", data=df, palette=cmap(np.linspace(0,1,cmap.N)))

plt.show()

在此處輸入圖片說明

暫無
暫無

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

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