python - 最大化seaborn调色板中的色彩空间

标签 python pandas matplotlib seaborn

我想“最大化”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);

mpl_colors

如果我使用相同的调色板但seaborn绘制它,颜色会不同:

df['x'] = df.index
sns.barplot(x='x', y='value', hue='variable', data=pd.melt(df, 'x'), palette='YlGn_r')

sns_colors

我意识到这可能是有意的行为,我并不完全反对,但是有没有办法强制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/

相关文章:

Python-pptx 确定文本是否仍在幻灯片内

python - Selenium python - 元素在点不可点击

python - 如何从pandas面板数据中递归选择一组列?

python - 如何通过 excel 为我的物理实验课使用 python、PyLab、NumPy 等

python - Matplotlib:更改数学字体大小

python - 当我 'run all' 时,Matplotlib 图没有显示在 Jupyter Notebook 上

python - 在异步任务之间自由切换的正确方法是什么?

python - 如何读取 MIDI 文件、更改其乐器并将其写回?

python - Pandas 将列中的所有值置于特定值之后 1

python - 从一列复制字符串的一部分并将其放入新的 Pandas 列中