2016-03-28 5 views
6

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

enter image description here

Но то, что я на самом деле хотел это же цветовая схема, но в «вертикали», а не «по горизонтали». Это возможно? Я искал и попытался установить параметр hue на ось Y, но он не работает, как я могу это сделать?

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

+0

Итак ... вы хотите, чтобы все бары имели сине-красную цветовую гамму, но с ними цвет синий в верхней части и постепенно меняя цвет на красный внизу? –

+1

Я редактировал вопрос, это не цветовая схема сине-красная, но светло-зеленая до темно-зеленого цвета, как на изображении, которое я редактировал. Например, бар C будет иметь самый темный цвет, а полосы с более низкими значениями будут иметь более светлый цвет – MrPedru22

ответ

6

Здесь раствор:

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

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

Смежные вопросы