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