Вводная часть Для анализа использования презервативов я выбрал данные из отчета Всемирной организации здравоохранения (ВОЗ) и различных исследований, проведенных в области сексуального здоровья. Эти данные включают статистику по использованию презервативов в разных странах, возрастных группах и среди различных социальных слоев. Я также использовал данные из опросов, проведенных среди молодежи, чтобы понять, как меняется отношение к использованию презервативов в зависимости от уровня образования и доступа к информации о сексуальном здоровье. Мне было интересно проанализировать эти данные, так как использование презервативов является важным аспектом профилактики заболеваний, передающихся половым путем, и предотвращения нежелательной беременности.
Понимание факторов, влияющих на использование презервативов, может помочь в разработке более эффективных программ просвещения и профилактики. Для визуализации данных я решил использовать несколько видов графиков: Гистограммы для отображения распределения использования презервативов по возрастным группам. Столбчатые диаграммы для сравнения использования презервативов в разных странах. Круговые диаграммы для иллюстрации доли пользователей, использующих презервативы в различных социальных группах.
Этапы работы Сбор данных: Я собрал данные из открытых источников, таких как ВОЗ, CDC и различные научные статьи. Данные были представлены в формате CSV и Excel. Обработка данных: Я использовал язык программирования Python и библиотеку Pandas для обработки данных. Вот пример кода, который я использовал для загрузки и предварительной обработки данных:
Визуализация данных: Для создания графиков я использовал библиотеку Matplotlib и Seaborn. Вот пример кода для создания гистограммы:
Стилизация графиков: Я вдохновлялся минималистичным дизайном и использовал цветовую палитру, основанную на нейтральных тонах с акцентами ярких цветов для выделения ключевых данных. Мои источники вдохновения включали графики из научных публикаций и визуализации на платформах, таких как Tableau и DataViz.
Использование нейросетей: В процессе анализа я не использовал нейросети, так как задача была сосредоточена на статистическом анализе и визуализации данных. Однако в будущем я планирую исследовать возможность применения машинного обучения для предсказания тенденций использования презервативов на основе собранных данных.
Первый график показывает, как менялся средний процент онлайн-продаж презервативов по годам. Видна тенденция роста — что логично, учитывая глобальный тренд на онлайн-шопинг. Сейчас сделаю ещё 3–4 графика, чтобы получилась целостная инфографика. Код: import matplotlib.pyplot as plt import seaborn as sns
Настройка визуального стиля
sns.set (style="whitegrid», font_scale=1.1) plt.rcParams['figure.figsize'] = (12, 6)
Готовим данные
df_clean = df.copy () df_clean['Year'] = df_clean['Year'].astype (int) df_clean['Awareness Index (0-10)'] = pd.to_numeric (df_clean['Awareness Index (0-10)'], errors='coerce') df_clean['Teen Pregnancy Rate (per 1000 teens)'] = pd.to_numeric (df_clean['Teen Pregnancy Rate (per 1000 teens)'], errors='coerce') df_clean['Online Sales (%)'] = pd.to_numeric (df_clean['Online Sales (%)'], errors='coerce')
График 1: Общая динамика онлайн-продаж по годам
online_sales = df_clean.groupby («Year»)[«Online Sales (%)»].mean ().reset_index ()
plt.figure () sns.lineplot (data=online_sales, x="Year», y="Online Sales (%)», marker="o») plt.title («Средний процент онлайн-продаж презервативов по годам») plt.xlabel («Год») plt.ylabel («Онлайн-продажи (%)») plt.tight_layout ()
plt.show ()
Второй график показывает, что страны с правительственными кампаниями имеют в среднем более высокий индекс осведомлённости. Это наглядное подтверждение эффективности таких инициатив. Двигаемся дальше! Сейчас покажу, как индекс осведомлённости связан с подростковой беременностью. Код:
График 2: Влияние правительственных кампаний на индекс осведомлённости
plt.figure () sns.boxplot (data=df_clean, x="Government Campaigns», y="Awareness Index (0-10)», palette="pastel») plt.title («Влияние правительственных кампаний на индекс осведомлённости») plt.xlabel («Правительственные кампании») plt.ylabel («Индекс осведомлённости (0-10)») plt.tight_layout () plt.show ()
На третьем графике видна обратная зависимость: чем выше индекс осведомлённости, тем ниже уровень подростковой беременности. Особенно ярко это проявляется в странах с госпрограммами. Теперь сделаем визуализацию популярности типов презервативов. Код:
График 3: Связь между индексом осведомлённости и подростковой беременностью
plt.figure () sns.scatterplot (data=df_clean, x="Awareness Index (0-10)», y="Teen Pregnancy Rate (per 1000 teens)», hue="Government Campaigns», alpha=0.7, palette="Set2») sns.regplot (data=df_clean, x="Awareness Index (0-10)», y="Teen Pregnancy Rate (per 1000 teens)», scatter=False, color="gray», line_kws={"linewidth»: 2, «linestyle»:"--"}) plt.title («Связь между осведомлённостью и подростковой беременностью») plt.xlabel («Индекс осведомлённости (0-10)») plt.ylabel («Подростковая беременность (на 1000)») plt.legend (title="Гос. кампания») plt.tight_layout () plt.show ()
Код для google copilot: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns
Загрузка данных
df = pd.read_csv («/mnt/data/Rich_Global_Condom_Usage_Dataset.csv»)
Предобработка
def extract_gender_pct (row, gender): parts = row.split (» — «) for part in parts: if gender in part: return int (part.strip ().replace (f"% {gender}», «»)) return None
df[«Male %»] = df[«Male vs Female Purchases (%)»].apply (lambda x: extract_gender_pct (x, «Male»)) df[«Female %»] = df[«Male vs Female Purchases (%)»].apply (lambda x: extract_gender_pct (x, «Female»))
Удаляем строки с некорректными значениями
df_gender = df.dropna (subset=[«Male %», «Female %»])
Настройки стиля
sns.set (style="whitegrid», font_scale=1.1)
График 1: Средние онлайн-продажи по годам
plt.figure (figsize=(10, 5)) online_sales = df.groupby («Year»)[«Online Sales (%)»].mean ().reset_index () sns.lineplot (data=online_sales, x="Year», y="Online Sales (%)», marker="o») plt.title («Средний процент онлайн-продаж презервативов по годам») plt.tight_layout () plt.show ()
График 2: Влияние гос. кампаний на осведомлённость
plt.figure (figsize=(8, 5)) sns.boxplot (data=df, x="Government Campaigns», y="Awareness Index (0-10)», palette="pastel») plt.title («Влияние гос. кампаний на индекс осведомлённости») plt.tight_layout () plt.show ()
График 3: Связь осведомлённости и подростковой беременности
plt.figure (figsize=(10, 6)) sns.scatterplot (data=df, x="Awareness Index (0-10)», y="Teen Pregnancy Rate (per 1000 teens)», hue="Government Campaigns», alpha=0.7) sns.regplot (data=df, x="Awareness Index (0-10)», y="Teen Pregnancy Rate (per 1000 teens)», scatter=False, color="gray», line_kws={"linestyle»: «--"})
plt.title («Связь осведомлённости и подростковой беременности») plt.tight_layout () plt.show ()
График 4: Средний процент покупателей по полу
plt.figure (figsize=(8, 5)) avg_male = df_gender[«Male %»].mean () avg_female = df_gender[«Female %»].mean () sns.barplot (x=[«Мужчины», «Женщины»], y=[avg_male, avg_female], palette="coolwarm») plt.title («Средний процент покупателей презервативов по полу») plt.ylabel («Процент») plt.tight_layout () plt.show ()




