Как изменить свойство "ylabel" на графике Catplot, когда оно является частью подзаговора? - PullRequest
1 голос
/ 09 октября 2019

Я пытаюсь изменить свойство ylabel 2 графов морского происхождения в подзаговоре. Однако использование функции set_ylabel() на каждой оси ничего не дает.

Я не могу работать напрямую с FacetGrid, так как по какой-то причине он не работает с подзаговором (он рисует дополнительные пустые сетки,именно поэтому я звоню close() после каждого розыгрыша).

import matplotlib.pyplot as plt 
import seaborn as sns

fig_a, ax_a = plt.subplots(1, 2, figsize = (16, 8))

fig_a.suptitle("Frequency of Exercise by Age")

ax_a[0].set_ylim([0, 500])
ax_a[0].set(ylabel = "Ylabel Test 1")
ax_a[0].set_title("Males (" + str(len(male_age_data)) + "/" + str(len(age_data)) + ")")

ax_a[1].set_ylim([0, 500])
ax_a[1].set_ylabel("Ylabel Test 2")
ax_a[1].set_title("Females (" + str(len(female_age_data)) + "/" + str(len(age_data)) + ")")

sns.catplot(x = "Active", hue = "Age", data = male_age_data, kind = "count", order = ["Inactive", "Active", "Very Active"], hue_order = ["<= 20", "21-30", "31-40", "41-50", "51-60", "61-70", "71-80"], ax = ax_a[0])

plt.close()

sns.catplot(x = "Active", hue = "Age", data = female_age_data, kind = "count", order = ["Inactive", "Active", "Very Active"], hue_order = ["<= 20", "21-30", "31-40", "41-50", "51-60", "61-70", "71-80"], ax = ax_a[1])

plt.close()

Вот вывод , поскольку вы можете видеть, что у-метка по-прежнему является "счетчиком" по умолчанию.

Установка заголовка по осям работает нормально, мне любопытно, почему это не влияет на y-метку и как я могу обойти это?

1 Ответ

1 голос
/ 09 октября 2019

Похоже, что catplot перезаписывает ylabel. Попробуйте переместить ваши команды ylabel после команд catplot.

Я смог воспроизвести вашу проблему и исправить ее, изменив таким образом порядок команд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...