Если вы заглянете в документацию для 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_*
находилось в одном столбце, а новый столбец показывает, какой категории соответствует каждое значение.