我想“最大化”seaborn 中绘图的色彩空间。我的意思是我希望颜色范围包含给定调色板中的两种极端颜色。
例如,如果我选择 matplotlib 调色板“YlGn_r”并用 pandas 绘制它:
%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
中。谢谢!
最佳答案
您可以在接受调色板名称的任何地方传递颜色列表,因此如果您想要特定颜色,这是获取它们的最佳方式。一种方法是 mpl.cm.YlGn_r(np.linspace(0, 1, 4))
。
但是,barplot
也会稍微降低颜色的饱和度,这对于大色 block 看起来会更好,但如果您不想这样做,可以设置 saturation=1
。
关于python - 最大化seaborn调色板中的色彩空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35568935/