我想使用Seaborn条形图为我的数据,根据Y轴中的值使用色标。例如,在此图像中,颜色根据调色板从左向右变化:
python - 改变seaborn条形图中的色标-LMLPHP
但我真正想要的是这个相同的配色方案,但是用“垂直”而不是“水平”。这有可能吗?我已经搜索并尝试将hue参数设置为y轴,但它似乎不起作用,我如何才能做到?
事先谢谢。

最佳答案

这里有一个解决方案:

import numpy as np, matplotlib.pyplot as plt, seaborn as sns
sns.set(style="whitegrid", color_codes=True)

titanic = sns.load_dataset("titanic")
data = titanic.groupby("deck").size()   # data underlying bar plot in question

pal = sns.color_palette("Greens_d", len(data))
rank = data.argsort().argsort()   # http://stackoverflow.com/a/6266510/1628638
sns.barplot(x=data.index, y=data, palette=np.array(pal[::-1])[rank])

plt.show()

这里输出:
python - 改变seaborn条形图中的色标-LMLPHP
注意:代码当前为高度相同的条指定不同(相邻)颜色。(在示例图中不是问题。)虽然对相同的高度条使用相同的颜色会更好,但生成的代码可能会使基本思想不那么清晰。

关于python - 改变seaborn条形图中的色标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36271302/

10-11 05:05