Original size 1024x1365

Расстройства сна

PROTECT STATUS: not protected
0

Описание

Я работала с датасетом с сайта Kaggle о нарушениях сна у людей разных возрастов и профессий. Сама страдаю бессонницей, так что тема мне близка.

В проекте я использовала (1) точечную диаграмму (2) круговую диаграмму (3) столбчатую диаграмму (4) линейный график потому что они по разному устроены и наглядно представляют изученные данные.

Этапы работы и описание применения генеративной модели

Я работала с готовой палитрой с сайта Coolors, потому что она напоминает оттенки ночного неба и то, как выглядят объекты при лунном свете.

Вот использованные цвета в порядке от светлого к тёмному 22223B 4A4E69 9A8C98 C9ADA7 F2E9E4

Также для графиков использован шрифт Golos text, потому что он спокойный, не привлекающей излишнего внимания — то что нужно для сна.

Графики отредактированы мной вручную в программе Adobe Illustrator.

Обложка сделана в нейросети Recraft. Она использована, чтобы показать отстранённость данных от реальности и сохранить палитру проекта. https://www.recraft.ai/projects

1. Зависимость продолжительности сна от возраста

big
Original size 1892x917

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

Загрузка данных из CSV-файла

df = pd.read_csv («Sleep_health_and_lifestyle_dataset.csv»)

Удаление строк с отсутствующими значениями в нужных столбцах

sleep_age_df = df[['Age', 'Sleep Duration']].dropna ()

Построение точечной диаграммы

plt.figure (figsize=(10, 6)) sns.scatterplot (data=sleep_age_df, x='Age', y='Sleep Duration', alpha=0.6)

Настройка графика

plt.title ('Зависимость продолжительности сна от возраста') plt.xlabel ('Возраст') plt.ylabel ('Продолжительность сна (часы)') plt.grid (True) plt.tight_layout ()

Отображение графика

plt.show ()

2. Самые популярные нарушения сна

Original size 3534x1956

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

Загрузка данных

df = pd.read_csv («Sleep_health_and_lifestyle_dataset.csv»)

Обработка данных: заменим пропущенные значения в 'Sleep Disorder' на 'None'

df['Sleep Disorder'] = df['Sleep Disorder'].fillna ('None')

Подсчёт количества каждой категории

sleep_disorder_counts = df['Sleep Disorder'].value_counts ()

Построение круговой диаграммы

plt.figure (figsize=(8, 8)) plt.pie ( sleep_disorder_counts, labels=sleep_disorder_counts.index, autopct='%1.1f%%', startangle=140, colors=sns.color_palette («pastel») )

Настройка отображения

plt.title ('Распределение расстройств сна (в процентах)') plt.axis ('equal') # Делает круг ровным plt.tight_layout () plt.show ()

3. Связь профессии с уровнем стресса

Original size 1892x917

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

Загрузка данных

data = pd.read_csv ('Sleep_health_and_lifestyle_dataset.csv')

Группировка по профессиям и расчет среднего уровня стресса

stress_by_occupation = data.groupby ('Occupation')['Stress Level'].mean ().sort_values (ascending=False)

Настройка стиля графиков

plt.figure (figsize=(12, 6)) sns.set_style («whitegrid») sns.set_palette («coolwarm»)

Создание столбчатой диаграммы

ax = sns.barplot (x=stress_by_occupation.index, y=stress_by_occupation.values)

Настройка оформления

plt.title ('Средний уровень стресса по профессиям', fontsize=16, pad=20) plt.xlabel ('Профессия', fontsize=12) plt.ylabel ('Средний уровень стресса (1-10)', fontsize=12) plt.xticks (rotation=45, ha='right') plt.ylim (0, 10)

Добавление значений на столбцы

for p in ax.patches: ax.annotate (f"{p.get_height ():.1f}», (p.get_x () + p.get_width () / 2., p.get_height ()), ha='center', va='center', xytext=(0, 9), textcoords='offset points')

plt.tight_layout () plt.show ()

4. Корелляция качества сна и уровня физической активности

Original size 1888x903

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

Загрузка данных

df = pd.read_csv («Sleep_health_and_lifestyle_dataset.csv»)

Очистка данных: исключаем строки с пропущенными значениями в нужных столбцах

data = df[['Physical Activity Level', 'Quality of Sleep']].dropna ()

Группировка: усредняем качество сна по уровням физической активности

grouped = data.groupby ('Physical Activity Level')['Quality of Sleep'].mean ().reset_index ()

Построение линейного графика

plt.figure (figsize=(10, 6)) sns.lineplot (data=grouped, x='Physical Activity Level', y='Quality of Sleep', marker='o')

Настройка графика

plt.title ('Зависимость качества сна от физической активности') plt.xlabel ('Уровень физической активности') plt.ylabel ('Качество сна (в среднем)') plt.grid (True) plt.tight_layout ()

Отображение графика

plt.show ()

Выводы

Представленные графики отражают взаимосвязь сна, физической активности, уровня стресса и возраста, а также распространённость расстройств сна.

1. Продолжительность сна и возраст  — Сон сокращается с возрастом: в 30–40 лет люди спят около 8 часов, к 60 годам — 6–6.5 часов. Это соответствует научным данным о возрастном снижении потребности во сне.

2. Качество сна и физическая активность  — Чем выше уровень активности (особенно в возрасте 30–60 лет), тем лучше качество сна (оценка 7–8/10). Это подтверждает, что спорт улучшает глубину и восстановительный эффект сна.

3. Стресс и профессия  — Наиболее стрессовые профессии — врач, учитель, менеджер, юрист (уровень стресса 8–10/10). Менее стрессовые — учёный, инженер, бухгалтер (4–6/10). Стресс напрямую влияет на бессонницу, что видно в следующем графике.

4. Расстройства сна  — 20,6% людей страдают бессонницей, ещё 20,6% — апноэ. Это может быть связано со стрессом и низкой физической активностью.

Итог: - После 40 лет сон становится короче, но его качество можно поддерживать спортом. - Стрессовые профессии чаще приводят к нарушениям сна. - Каждый пятый взрослый сталкивается с бессонницей или апноэ, что требует внимания к образу жизни.

Рекомендации: - Увеличить физическую активность для улучшения сна. - Контролировать стресс. - После 50 лет — проверять здоровье сна, так как возраст и стресс усиливают риски.

Расстройства сна
0
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more