Объединение нескольких баррелей в морском заливе - PullRequest
0 голосов
/ 13 сентября 2018

Мой фрейм данных содержит следующие заголовки столбцов: тема, группа, MASQ_GDA, MASQ_AA, MASQ_GDD, MASQ_AD

Мне удалось построить один из них, используя гистограмму со следующими характеристиками:

bar_plot = sns.barplot(x="Group", y='MASQ_GDA', units="subject", ci = 68, hue="Group", data=demo_masq)

Однако я пытаюсь создать несколько таких гистограмм рядом. Может кто-нибудь знает, как я могу это сделать, чтобы каждый график содержал оставшиеся 3 переменные (MASQ_AA, MASQ_GDD, MASQ_AD). Вот пример того, чего я пытаюсь достичь. enter image description here

1 Ответ

0 голосов
/ 13 сентября 2018

Если вы заглянете в документацию для sns.barplot(), вы увидите, что функция принимает параметр ax=, позволяющий сообщать seaborn, какой объект Axes использовать для построения результата

топор: топоры matplotlib, опционально

Объект Оси для рисования графика, в противном случае используются текущие Оси.

Следовательно, простой способ получить желаемый результат - заранее создать Оси, а затем вызвать sns.barplot() с соответствующим параметром ax

.
fig, axs = plt.subplots(1,4)  # create 4 subplots on 1 row
for ax,col in zip(axs,["MASQ_GDA", "MASQ_AA", "MASQ_GDD", "MASQ_AD"]):
    sns.barplot(x="Group", y=col, units="subject", ci = 68, hue="Group", data=demo_masq, ax=ax)  # <- notice ax= argument

Другой вариант, и, возможно, вариант, который больше соответствует философии seaborn, - это использование FacetGrid . Это позволит вам автоматически создавать необходимое количество вспомогательных участков в зависимости от количества категорий в вашем наборе данных. Однако для этого требуется изменить форму вашего фрейма данных так, чтобы содержимое ваших столбцов MASQ_* находилось в одном столбце, а новый столбец показывает, какой категории соответствует каждое значение.

...