DataFrame.hist() / Series.hist()

Метод hist() строит гистограмму распределения значений. Под капотом использует matplotlib (требует установленного пакета). Удобный способ быстро оценить разброс показаний датчиков.

Сигнатура

DataFrame.hist(column=None, by=None, grid=True, xlabelsize=None,
               xrot=None, ylabelsize=None, yrot=None, ax=None,
               sharex=False, sharey=False, figsize=None,
               layout=None, bins=10, backend=None, legend=False,
               **kwargs)

Параметры

  • column — имя столбца или список столбцов для построения.

  • by — группировка гистограмм по значениям столбца.

  • bins — количество корзин (по умолчанию 10).

  • grid — отображать сетку.

  • figsize — размер фигуры в дюймах.

  • layout — сетка подграфиков (rows, cols).

Возвращаемое значение

Объект matplotlib.axes.Axes или массив осей. Сам график отображается через plt.show().

Примеры

Пример 1. Гистограмма Series

import pandas as pd
import matplotlib.pyplot as plt

s = pd.Series([22.1, 22.3, 22.5, 22.4, 23.0, 22.8,
               22.2, 22.6, 22.4, 22.5])
s.hist(bins=5)
plt.show()

Пример 2. Гистограммы для всех числовых столбцов

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    "temp":     [22, 23, 21, 24, 22, 23],
    "humidity": [55, 60, 58, 62, 57, 59],
})
df.hist(bins=4, figsize=(8, 4))
plt.show()

Пример 3. Конкретный столбец

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    "dist_cm": [10, 12, 15, 11, 13, 14, 12, 16, 11, 13],
    "ts":      range(10),
})
df.hist(column="dist_cm", bins=5)
plt.show()

Пример 4. Группировка by

Разделяем гистограмму температуры по идентификатору датчика:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    "sensor": ["A", "A", "A", "B", "B", "B"],
    "temp":   [22, 23, 21, 25, 26, 24],
})
df.hist(column="temp", by="sensor", bins=3)
plt.show()

Пример 5. Логарифмическая шкала через kwargs

import pandas as pd
import matplotlib.pyplot as plt

s = pd.Series([1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
ax = s.hist(bins=5)
ax.set_yscale("log")
plt.show()

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.