Сюжеты с использованием Seaborn - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь построить прямоугольники и скрипки для трех переменных по отношению к переменной в формации 3X2. Но я не могу понять, как включить sns lib с функцией subplot.

#plots=plt.figure()
axis=plt.subplots(nrows=3,ncols=3)
for i,feature in enumerate(list(df.columns.values)[:-1]):
    axis[i].plot(sns.boxplot(data=df,x='survival_status_after_5yrs',y=feature))
    i+=1
    axis[i].plot(sns.violinplot(data=df,x='survival_status_after_5yrs',y=feature))
plt.show()```

I am expecting 3X2 subplot, x axis stays same all the time y axis rolls over the three variables I have mentioned.

Thanks for your help.

Ответы [ 2 ]

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

Я думаю, у вас есть две проблемы.

Во-первых, plt.subplots(nrows=3, ncols=2) возвращает объект фигуры и массив объектов осей, поэтому вы должны заменить эту строку на: fig, ax = plt.subplots(nrows=3, ncols=2). Объект ax теперь является массивом объектов с осями 3x2.

Вы можете превратить это в 1-й массив с ax = ax.flatten(), но, учитывая то, что, я думаю, вы пытаетесь сделать, я думаю, что легче сохранить как 3x2. (Между прочим, я предполагаю, что ncols=3 является опечаткой)

Во-вторых, как ответ Ewoud упоминает с seaborn, вы передаете оси для построения графика в качестве аргумента вызова функции plot.

Я думаю, что вам подойдет следующее:

fig, ax = plt.subplots(nrows=3, ncols=2)
for i, feature in enumerate(list(df.columns.values)[:-1]):
    # for each feature create two plots on the same row
    sns.boxplot(data=df, x='survival_status_after_5yrs',y=feature, ax=ax[i, 0])
    sns.violinplot(data=df, x='survival_status_after_5yrs', y=feature, ax=ax[i, 1])
plt.show()
0 голосов
/ 30 октября 2019

Большинство морских графиков имеют ось kwarg, поэтому вместо

axis[i].plot(sns.boxplot(data=df,x='survival_status_after_5yrs',y=feature))

try

sns.boxplot(data=df,x='survival_status_after_5yrs',y=feature,axis=axis[i])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...