Метод hist
Метод hist применяется к Series
и строит гистограмму распределения значений.
Гистограмма группирует данные в интервалы (bins)
и отображает частоту значений в каждом интервале.
Метод возвращает объект Axes из библиотеки Matplotlib.
Основные параметры: bins - количество интервалов
(по умолчанию 10), figsize - размер графика
в дюймах, color - цвет столбцов,
edgecolor - цвет границ столбцов.
Синтаксис
ser.hist(bins=None, figsize=None, color=None, edgecolor=None)
Пример
Давайте построим гистограмму для серии из 100 случайных чисел, распределённых по нормальному закону:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ser = pd.Series(np.random.randn(100))
ser.hist(bins=15, figsize=(8, 5), color='skyblue', edgecolor='black')
plt.title('Distribution of values')
plt.show()
Пример
Построим гистограмму для серии с целочисленными значениями
и зададим количество интервалов равное 5:
import pandas as pd
import matplotlib.pyplot as plt
ser = pd.Series([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5])
ser.hist(bins=5, figsize=(7, 4), color='lightgreen', edgecolor='darkgreen')
plt.title('Value frequency distribution')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
Пример
Построим гистограмму и сохраним результат в переменную для дальнейшей настройки отображения:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ser = pd.Series(np.random.randint(1, 20, 200))
ax = ser.hist(bins=10, figsize=(8, 5), color='coral', edgecolor='brown')
ax.set_title('Random integer distribution')
ax.set_xlabel('Value range')
ax.set_ylabel('Number of elements')
plt.grid(alpha=0.3)
plt.show()
Результат выполнения кода:
Axes(0.125,0.11;0.775x0.77)
Пример
Сравним гистограммы двух разных серий на одном графике с помощью прозрачности:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ser1 = pd.Series(np.random.normal(0, 1, 500))
ser2 = pd.Series(np.random.normal(3, 1, 500))
ser1.hist(bins=20, alpha=0.5, label='Mean=0', color='blue', edgecolor='black')
ser2.hist(bins=20, alpha=0.5, label='Mean=3', color='red', edgecolor='black')
plt.legend()
plt.title('Comparison of two distributions')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
Смотрите также
-
метод
value_counts,
который подсчитывает частоту уникальных значений -
метод
describe,
который считает описательную статистику для серии -
метод
plot,
который строит различные графики для серии -
метод
mean,
который вычисляет среднее арифметическое значение