Python boxplot на отдельные переменные - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь напечатать все коробочные графики для каждой переменной в наборе данных с помощью этого цикла python.

colNameList = list(df.columns)
for i in range (0, len(df.columns)):
    df.boxplot(column=colNameList[i])

Где df - мой набор данных.

Почему этот простой код показывает мне только последний блокпост?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Если вы хотите отдельный график для каждой переменной, просто поместите plt.show () внутри цикла for:

import matplotlib.pyplot as plt
import pandas as pd

for i in df.columns:
    df.boxplot(column=i)
    plt.show()

Вы можете написать свой код более питоническим способом: df.colums уже является списком, и итерация выполняется в списке

0 голосов
/ 11 мая 2018

IIUC, вы хотите поле для каждого столбца, который является значением по умолчанию для df.boxplot().

Пример кадра данных :

df = pd.DataFrame({'col1':np.random.randint(0,9,100),
                   'col2':np.random.randint(2,12,100),
                   'col3':np.random.randint(4,14,100)})

>>> df.head()
   col1  col2  col3
0     6     9     4
1     5     2     8
2     0     7    11
3     0    10     9
4     0     3     8

Заговор:

df.boxplot()

enter image description here

Если вам нужны только определенные столбцы:

df[['col1', 'col2']].boxplot()
# or
df.boxplot(column=['col1', 'col2'])

enter image description here

Редактировать Основываясь на ваших комментариях, вот способ сохранить каждый отдельный ящик как отдельный блокпост, чтобы вы могли видеть их по отдельности.

for i in df.columns:
    df.boxplot(column=i)
    plt.savefig('plot'+str(i)+'.png')
    plt.close()
...