Перебор цветов в kdeplot Seaborn в Python внутри цикла for - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь нарисовать три разных подзаголовка kde в a для l oop, и в то же время я хотел бы, чтобы разные линии имели разные цвета, но когда я получаю этот аргумент ErrorInvalid RGBA: ['# 0B132B' , '# 6FFFE9', '# 5BC0BE'].

Я представляю, когда я повторяю графики, как-то я не повторяю свою трехцветную палитру. Длина списка и палитра, которую я повторяю, одинаковы.

Возможно ли, что я получу другой цвет для каждой строки внутри for al oop, чтобы мне не приходилось делать это вручную?

age_classes = [age_class1, age_class2, age_class3]
age_sur = [train_data[train_data['Survived'] == 1].Age, train_data[train_data['Survived'] == 0].Age]
age_sex = [male_age, female_age]

fig, surv_age = plt.subplots(figsize=(20,5), nrows=1, ncols=3, sharey=False, sharex=True)

for c_age in age_classes:
    sns.kdeplot(c_age, ax=surv_age[0], shade=False, color=pal3)
    surv_age[0].legend(['First Class', 'Second Class', 'Third Class'])
for k_age in age_sur:
    sns.kdeplot(k_age, ax=surv_age[1], shade=True)
    surv_age[1].legend(['Survived', 'No Survived'])
for s_age in age_sex:
    sns.kdeplot(s_age, ax=surv_age[2], shade=True, bw=1.5)
    surv_age[2].legend(['Male', 'Female'])

1 Ответ

1 голос
/ 10 мая 2020

вы можете перебирать два массива параллельно, используя zip():

age_classes = [age_class1, age_class2, age_class3]
age_colors = ['#0B132B', '#6FFFE9', '#5BC0BE']
(...)
for c_age,color in zip(age_classes,age_colors):
    sns.kdeplot(c_age, ax=surv_age[0], shade=False, color=color)
    surv_age[0].legend(['First Class', 'Second Class', 'Third Class'])
(...)
...