Seaborn Catplot + Barplot: дополнительная ось - PullRequest
0 голосов
/ 28 июня 2019

Я использую Seaborn / Matplotlib для отображения разных выходов (например, времени и расстояния) для разных параметров.Я хотел бы связать два выходных сигнала на одном графике, поэтому я использую сателот и барплот seaborn.

Моя проблема в том, что я не получаю ожидаемого отображения.График здесь, но появляется некоторая дополнительная шумная ось.

Я запускаю следующий код

ax = plt.subplot(311)
ax2 = ax.twinx()

data = sns.load_dataset("tips")
sns.barplot(ax=ax, x="day",y="total_bill", hue="size" , data=data, ci=None)
ax.set_yscale("log")

sns.catplot(data=data, x="day", y="tip", ax=ax2, hue="size", kind="swarm", palette="bright")

И у меня следующий результат:

enter image description here

Не могли бы вы помочь мне удалить эту лишнюю ось?Это особенно неудобно при наличии нескольких участков.

Ответы [ 2 ]

1 голос
/ 28 июня 2019

Дополнительные оси, которые вы видите, - это catplot, который вы создаете.catplot - функция уровня фигуры (т.е. она создает свою фигуру);и, следовательно, на самом деле не имеет аргумента ax.Можно было бы увидеть это как ошибку, которая все еще допускает это.Что вы, вероятно, хотели бы сделать, это создать вместо sns.swarmplot аргумент ax.

1 голос
/ 28 июня 2019

Дополнительная ось, которую вы видите, это та, которую возвращает catplot. Чтобы избавиться от этого, вы можете добавить следующую строку после sns.catplot(...), где индекс 2 относится к количеству цифр.

plt.close(2)

Чтобы проверить это, если вы используете plt.close(1), будет удалена основная фигура, содержащая гистограмму

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