Я ищу способ настроить цветовую палитру, чтобы каждый раз при построении графика цвета полосок соответствовали значениям на оси x.
Я использую Seaborn
Я уверен, что это где-то в сети, но безуспешно искал больше часа
Например, я бы хотел:
«Четверг» - всегда пурпурный, «Пятница» - красный, «Суббота» - зеленый, «Воскресенье» - синий,
Я буду использовать это для множества разных графиков, используя разные критерии - иногда все 4 дня будут включены, иногда нет.
Если вы посмотрите на пример ниже, цвета работают нормально
Пример 1:
%matplotlib inline
import pandas as pd
import seaborn as sns
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata- book/master/ch08/tips.csv", sep=',')
df=df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)]
Но Пример 2, основанный на фильтрации воскресенья:
%matplotlib inline
import pandas as pd
import seaborn as sns
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata- book/master/ch08/tips.csv", sep=',')
df=df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)]
df=df[df['day']!='Sun']
Что ж, обратите внимание, как все цвета сместились
Как мне настроить пользовательскую палитру, которая сопоставляется с основным списком значений (например, понедельник = красный, вторник = зеленый, среда = синий и т. Д.). Динамически было бы здорово, но статический список тоже подойдет
Я знаю, что могу сделать что-то вроде:
pal = dict(Sat="k", Thur="b", Fri="y", Sun="#9b59b6")
x=sns.barplot(x="day",y="tip",data=df, palette=pal)
Это устанавливает палитру, а затем применяет ее к каждой панели, но я больше надеялся, что смогу использовать существующую палитру, что-то вроде
sns.color_palette("Set1", n_colors=30, desat=.5)
Затем выполните итерацию по палитре и назначьте каждому цвету значение (т.е. первое значение - понедельник, второе вторник и т. Д.)
Буду признателен за любую помощь!
Спасибо!
Джефф