Исходный размер 1200x1600

Анализ стриминг-платформы Twitch

PROTECT STATUS: not protected

Введение

В данном исследовании представлен анализ данных стриминг-платформы с использованием Python и библиотеки Pandas. Для работы был выбран открытый датасет с платформы Kaggle, содержащий информацию о профилях с наибольшим количеством фолловеров, просмотров, времени стриминга и т.д

Данные представлены в табличном формате CSV, что делает их удобными для программной обработки и анализа.

Почему данные представляют интерес?

В настоящее время компьютерные и мобильные игры бесспорно являются одним из самых популярных тем для обсуждения среди молодежи.

Twitch — это платформа для прямых трансляций, которая пользуется массовостью среди любителей как мобильных, так и компьютерных игр. Ежедневно сервис посещают более миллиона человек, чтобы пообщаться.

Типаж представленных графиков

Столбчатая диаграмма — для сравнения каналов по времени просмотра.

Диаграмма размаха — прирост подписчиков по маркировке Mature

Диаграмма рассеивания — отношение между количеством экранного времени и времени просмотра.

Подготовка данных

Анализ данных начинается с загрузки необходимых данных для первичного знакомства с их структурой. На данном этапе используется библиотека Pandas, предназначенная для анализа табличных данных.

Для визуализации данных используется библиотека Matplotlib, позволяющая гибко настраивать внешний вид графиков.

Для стилизации графиков и работы с пользователями шрифтами используется модуль plt.rcParams в Matplotlib.

import pandas as pd

import matplotlib.pyplot as plt

plt.rcParams.update

Параметры для визуализации графиков

THEME = { "figure.facecolor": "#f3f0ff", "axes.facecolor": "#f3f0ff", "axes.edgecolor": "#2a2a2a", "axes.labelcolor": "#2a2a2a", "text.color": "#2a2a2a", "xtick.color": "#2a2a2a", "ytick.color": "#2a2a2a", "grid.color": "#b9b9c9", "grid.linestyle": "--", "grid.linewidth": 0.7, "axes.grid": True, "axes.titleweight": "bold", "font.size": 11, } plt.rcParams.update(THEME)

def add_caption(ax, text): ax.text(0, -0.18, text, transform=ax.transAxes, fontsize=9, va="top", ha="left", color="#444444")

Топ-10 Twitch-каналов по времени просмотра

Наглядное представление лидеров Twitch по времени просмотра зрителей, позволяющее быстро сравнить популярность каналов.

Перевод времени просмотра из минут в часы.

Выбор топ-10 каналов по суммарному времени просмотра.

Сортировка в порядке убывания времени просмотра.

top10 = df.sort_values("watch_time_hours", ascending=False).head(10)

fig, ax = plt.subplots(figsize=(10, 6)) ax.barh(top10["channel"][::-1], (top10["watch_time_hours"]/1e6)[::-1]) ax.set_title("Топ‑10 Twitch‑каналов по времени просмотра") ax.set_xlabel("Watch time, млн часов") ax.set_ylabel("") add_caption(ax, "Watch time(Minutes) переведён в часы; barh удобен для длинных названий.") fig.tight_layout() plt.show()

Исходный размер 1280x768

Отношение экранного времени и времени просмотра

Исследование зависимости между объёмом экранного времени (Stream time) и времени просмотра (Watch time). Доказана вполне ожидаемая закономерность - чем больше ты стримишь, тем больше тебя смотрят.

s = df.dropna(subset=["stream_time_hours", "watch_time_hours"]).copy() corr = s["stream_time_hours"].corr(s["watch_time_hours"])

leaders = s.sort_values("watch_time_hours", ascending=False).head(6)

fig, ax = plt.subplots(figsize=(10, 6)) ax.scatter(s["stream_time_hours"], s["watch_time_hours"], alpha=0.45) ax.set_xscale("log") ax.set_yscale("log") ax.set_title("Связь: сколько стримили ↔️ сколько смотрели (лог‑шкалы)") ax.set_xlabel("Stream time, часы (лог)") ax.set_ylabel("Watch time, часы (лог)") for _, r in leaders.iterrows(): ax.annotate(str(r["channel"]), (r["stream_time_hours"], r["watch_time_hours"]), xytext=(5, 5), textcoords="offset points", fontsize=9) add_caption(ax, f"Корреляция Пирсона = {corr:.3f}. Лог‑шкалы нужны из‑за сильной асимметрии метрик.") fig.tight_layout() plt.show()

Исходный размер 1280x768

Прирост подписчиков по маркировке Mature

Сравнение того, как маркировка контента «Mature» влияет на прирост подписчиков. Можно оценить различия в медиане, разбросе данных и симметрии распределения.

tmp = df.dropna(subset=["followers_gained", "mature"]).copy()

g_not = tmp.loc[tmp["mature"] == False, "followers_gained"].values g_yes = tmp.loc[tmp["mature"] == True, "followers_gained"].values

fig, ax = plt.subplots(figsize=(8.5, 6)) ax.boxplot([g_not, g_yes], labels=["Not mature", "Mature"], showfliers=False) ax.set_title("Прирост подписчиков по маркировке Mature") ax.set_ylabel("Followers gained") add_caption(ax, "Boxplot показывает медиану и IQR по группам; выбросы скрыты для читабельности.") fig.tight_layout() plt.show()

Исходный размер 1280x903

Языки стримов среди топ-каналов

Наглядно продемонстрировано языковое распределение среди самых популярных Twitch-каналов: какой язык доминирует, какие языки менее представлены.

lang_counts = df["language"].fillna("Unknown").value_counts().head(12)

fig, ax = plt.subplots(figsize=(10, 6)) ax.bar(lang_counts.index, lang_counts.values) ax.set_title("Языки стримов среди топ‑каналов (Top‑12)") ax.set_ylabel("Количество каналов") ax.set_xlabel("Язык") ax.tick_params(axis="x", rotation=35) add_caption(ax, "Метод: частотный анализ value_counts.") fig.tight_layout() plt.show()

Исходный размер 987x584

Выводы

В результате анализа были выявлены ключевые особенности стриминг-платформы Twitch.

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

Увеличение времени стрима не всегда приводит к пропорциональному росту просмотров. Эффективность контента важнее количества часов в эфире.

Маркировка Mature не является препятствием для роста. Каналы с контентом для взрослых могут иметь сопоставимый или даже больший прирост подписчиков, чем семейные каналы.

Twitch является мультиязычным стриминг-сервисом, однако графики демонстрируют нам превосходство англоязычного контента над другими языками.

Анализ стриминг-платформы Twitch
Проект создан 05.02.2026
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше