Разместите все столбцы данных панд отдельно - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть фрейм данных pandas, в котором есть только числовые столбцы, и я пытаюсь создать отдельную гистограмму для всех функций

ind group people value value_50
 1      1    5    100    1
 1      2    2    90     1
 2      1    10   80     1
 2      2    20   40     0
 3      1    7    10     0
 3      2    23   30     0

, но в моих реальных данных есть более 50 столбцов, как можноЯ создаю отдельный сюжет для всех них

Я пробовал

df.plot.hist( subplots = True, grid = True)

Это дало мне перекрывающий неясный сюжет.

как я могу расположить их, используя субплоты панд = True.Приведенный ниже пример может помочь мне получить графики в сетке (2,2) для четырех столбцов.Но это длинный метод для всех 50 столбцов

fig, [(ax1,ax2),(ax3,ax4)]  = plt.subplots(2,2, figsize = (20,10))

1 Ответ

3 голосов
/ 08 апреля 2019

Панды subplots=True расположат оси в одном столбце.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame(np.random.rand(7,20))

df.plot(subplots=True)

plt.tight_layout()
plt.show()

enter image description here

Здесь tight_layout не применяется,потому что фигура слишком мала, чтобы правильно расположить оси.Можно использовать и большую цифру (figsize=(...)).

Чтобы иметь оси на сетке, можно использовать параметр layout, например,

df.plot(subplots=True, layout=(4,5))

enter image description here

То же самое может быть достигнуто при создании осей с помощью plt.subplots()

fig, axes = plt.subplots(nrows=4, ncols=5)
df.plot(subplots=True, ax=axes)
...