import numpy as np                    # математические операции и генерация данных
import matplotlib.pyplot as plt       # построение графиков

np.random.seed(42)                    # фиксируем случайность — результат всегда одинаковый
data = np.random.normal(loc=175,      # среднее распределения (175 см)
                        scale=7,      # стандартное отклонение (7 см)
                        size=500)     # количество точек в выборке

fig, ax = plt.subplots(figsize=(10, 5))  # fig — холст, ax — оси; размер в дюймах

ax.hist(
    data,             # входной массив значений
    bins=11,          # количество столбцов (бинов)
    color="#4a90d9",  # цвет заливки столбцов
    edgecolor="white",# цвет границы между столбцами
    alpha=0.8,        # прозрачность (0 — невидимый, 1 — непрозрачный)
    label="Выборка"   # подпись для легенды
)

ax.set_xlabel("Рост (см)")                          # подпись горизонтальной оси
ax.set_ylabel("Количество")                         # подпись вертикальной оси
ax.set_title("Гистограмма роста людей")  # заголовок графика
ax.legend()           # отображает легенду (использует label из ax.hist)
plt.tight_layout()    # убирает обрезание подписей по краям
plt.show()            # выводит график на экран