我已经从选择的颜色中制作了一个颜色图,但是我想将其转换为可以用来“色调”海洋图的调色板。这可能吗?如果可以,怎么可能?
我用过...
cmap = pl.colors.LinearSegmentedColormap.from_list("", ["red","white"],gamma=0.5,N=len(hue))
...为了制作自己的颜色图,我知道这是可行的,因为它可以成功地应用于标准matplotlib.pyplot.scatter plot,如下所示。
plt.scatter(x=[1,2,3,4,5],y=[1,2,3,4,5],c=[5,4,3,2,1],cmap=cmap)
click here to see the output as it won't let me embed an image
但是,我试图使用seaborn的swarmplot函数并将颜色表作为色相参数传递。显然,这不起作用,因为此参数需要调色板-因此,我的问题!
我不太确定从哪里开始!任何帮助将不胜感激!
答案 0 :(得分:2)
深浅的调色板是简单的颜色列表。您可以通过
获得颜色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()