我想"最大化" seaborn中情节的色彩空间。我的意思是我希望颜色范围在给定的调色板中包含两种极端颜色。
例如,如果我选择matplotlib调色板" YlGn_r"并用熊猫绘制它:
%matplotlib inline
import pandas as pd
import numpy as np
import seaborn as sns
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.plot(kind='bar', colormap='YlGn_r', width=.8);
如果我使用相同的调色板绘制它,但是seaborn颜色是不同的:
df['x'] = df.index
sns.barplot(x='x', y='value', hue='variable', data=pd.melt(df, 'x'), palette='YlGn_r')
我意识到这可能是预期的行为,我并不完全反对,但有没有办法迫使seaborn
使用全频谱?我有很多需要颜色匹配的图表,其中一些在seaborn
,一些在matplotlib
。谢谢!
答案 0 :(得分:2)
您可以在接受调色板名称的任何位置传递颜色列表,因此如果您需要特定颜色,那么这是获得它们的最佳方式。一种方法是mpl.cm.YlGn_r(np.linspace(0, 1, 4))
。
但是,barplot
也会对颜色进行去饱和处理,对于大型修补程序看起来效果更好,但如果您不希望这样,则可以设置saturation=1
。