Изменение цветовой шкалы на участке seaborn bar

Я хотел бы использовать гистограмму seaborn для моих данных с цветовой шкалой в соответствии со значениями по оси Y. Например, на этом изображении цвет меняется слева направо в соответствии с цветовой палитрой:

но на самом деле я хотел эту же цветовую схему, но в "вертикальном" вместо "горизонтального". Возможно ли это? Я искал и пытался установить hue параметр для оси Y, но он, похоже, не работает, как я могу это сделать?

спасибо заранее.

1 ответов


решение:

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()
выход: bar plot

Примечание: код в настоящее время назначает разные (смежные) цвета для баров с одинаковых высота. (Не проблема на пробном участке.) Хотя было бы лучше использовать один и тот же цвет для баров одинаковой высоты, полученный код, вероятно, сделает основную идею менее ясной.