Seaborn Stripplot со скрипками сюжетных баров перед точками - PullRequest
1 голос
/ 22 апреля 2019

Я хотел бы нарисовать скрипичный сюжет за полосатым джиттером. Полученный график имеет среднюю / стандартную полосу позади точек дрожания, что затрудняет просмотр. Мне интересно, есть ли способ поставить планку перед точками.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")

sns.violinplot(x="day", y="total_bill", data=tips, color="0.8")
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)
plt.show()

violin

1 Ответ

1 голос
/ 23 апреля 2019

Seaborn не заботится о том, чтобы выставлять объекты, которые он создает, пользователю. Поэтому нужно было бы собрать их с топоров, чтобы манипулировать ими. Свойство, которое вы хотите изменить здесь, является zorder. Так что идея может быть

  1. Сюжет о скрипках
  2. Соберите линии и точки с осей, сделайте линии более высокими, а точки сделайте их еще более высокими.
  3. Последний участок стрип- или роя. Это будет иметь нижний zorder автоматически.

Пример:

import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.collections import PathCollection

tips = sns.load_dataset("tips")

ax = sns.violinplot(x="day", y="total_bill", data=tips, color=".8")

for artist in ax.lines:
    artist.set_zorder(10)
for artist in ax.findobj(PathCollection):
    artist.set_zorder(11)

sns.stripplot(x="day", y="total_bill", data=tips, jitter=True, ax=ax)

plt.show()

enter image description here

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