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

Программирование для креативных индустрий: киноиндустрия 2000–2020 гг.

PROTECT STATUS: not protected

Введение

В исследовании были выбраны данные о фильмах с 2000 по 2020 год из IMDB Movies Dataset на сайте Kaggle.

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

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

Визуализация данных

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

Был проведён анализ данных в Google Colab и выделены основные аспекты из таблицы на основе CSV-файла, после чего были созданы коды и построены диаграммы. В коде также описываются цвета и шрифты, использованные для графиков. В ходе работы иногда была использована нейросеть Google Gemini для более точного построения диаграмм и уточнения некоторых дополнительных функций кода.

Исходный размер 2060x998

Средние сборы по жанрам

avg_sales = df.groupby ('Жанр')['Сборы'].mean () / 1e6

fig, ax = plt.subplots (figsize=(10, 5)) ax.bar (avg_sales.index, avg_sales.values, color=COLORS, edgecolor='white', linewidth=2)

ax.set_title ('Средние сборы по жанрам', fontsize=14, fontweight='bold', pad=15) ax.set_ylabel ('Сборы (млн $)', fontsize=12) ax.set_facecolor (BACKGROUND) ax.grid (axis='y', color=GRID_COLOR, linestyle='--', alpha=0.7)

ax.spines['top'].set_visible (False) ax.spines['right'].set_visible (False)

plt.xticks (rotation=45) plt.tight_layout () plt.show ()

— Боевики зарабатывают больше всех — в среднем 90-100 млн $ — Фантастика на втором месте — около 80-85 млн $ — Драмы и комедии в середине — 60-70 млн $ — Мультфильмы и триллеры зарабатывают меньше — 50-60 млн $. Зрители предпочитают зрелищное кино (боевики, фантастику). Этим жанрам можно давать большие бюджеты, так как они окупятся.

Исходный размер 2068x1002

Связь бюджета и кассовых сборов

sample = df.sample (100) budget_m = sample['Бюджет'] / 1e6 sales_m = sample['Сборы'] / 1e6

fig, ax = plt.subplots (figsize=(10, 5))

scatter = ax.scatter (budget_m, sales_m, alpha=0.7, s=60, color=COLORS[2])

z = np.polyfit (budget_m, sales_m, 1) p = np.poly1d (z) ax.plot (budget_m, p (budget_m), color=COLORS[3], linewidth=2, linestyle='--', label=f’Тренд: y = {z[0]:.2f}x + {z[1]:.2f}')

ax.set_title ('Связь бюджета и кассовых сборов', fontsize=14, fontweight='bold', pad=15) ax.set_xlabel ('Бюджет (млн $)', fontsize=12) ax.set_ylabel ('Сборы (млн $)', fontsize=12) ax.set_facecolor (BACKGROUND) ax.grid (color=GRID_COLOR, linestyle='--', alpha=0.7)

ax.spines['top'].set_visible (False) ax.spines['right'].set_visible (False) ax.legend ()

plt.tight_layout () plt.show ()

— Большинство точек выше красной линии, что говорит о прибыльности фильмов — Чем больше бюджет, тем выше сборы, но есть исключения — Некоторые дорогие фильмы провалились.

Исходный размер 2046x1002

Динамика бюджета и сборов по годам

yearly = df.groupby ('Год').agg ({ 'Бюджет': 'mean', 'Сборы': 'mean' }) / 1e6

fig, ax = plt.subplots (figsize=(10, 5))

ax.plot (yearly.index, yearly['Бюджет'], label='Средний бюджет', color=COLORS[0], linewidth=3, marker='o')

ax.plot (yearly.index, yearly['Сборы'], label='Средние сборы', color=COLORS[3], linewidth=3, marker='s')

ax.set_title ('Динамика бюджета и сборов по годам', fontsize=14, fontweight='bold', pad=15) ax.set_xlabel ('Год', fontsize=12) ax.set_ylabel ('Млн $', fontsize=12) ax.set_facecolor (BACKGROUND) ax.grid (color=GRID_COLOR, linestyle='--', alpha=0.7)

ax.spines['top'].set_visible (False) ax.spines['right'].set_visible (False) ax.legend ()

plt.tight_layout () plt.show ()

— Бюджеты и сборы растут каждый год, но сборы опережают бюджеты, кино становится прибыльнее — Самые успешные годы: 2018-2020 — В среднем фильм приносит на 80-100% больше, чем стоит. Киноиндустрия процветает.

Исходный размер 1584x1156

Сравнение стран по ключевым показателям: сборы, бюджет, ROI

country_stats = df.groupby ('Страна').agg ({ 'Бюджет': 'mean', 'Сборы': 'mean', 'ROI': 'mean' })

normalized = country_stats.apply (lambda x: (x — x.min ()) / (x.max () — x.min ()))

categories = list (normalized.columns) N = len (categories) angles = [n / float (N) * 2 * np.pi for n in range (N)] angles += angles[: 1]

fig, ax = plt.subplots (figsize=(8, 8), subplot_kw=dict (projection='polar'))

for i, country in enumerate (normalized.index[: 4]): values = normalized.loc[country].values.tolist () values += values[: 1]

ax.plot (angles, values,
        linewidth=2,
        label=country,
        color=COLORS[i])
ax.fill (angles, values,
        alpha=0.1,
        color=COLORS[i])

ax.set_xticks (angles[: -1]) ax.set_xticklabels (categories, fontsize=11) ax.set_title ('Сравнение стран по ключевым показателям', fontsize=14, fontweight='bold', pad=20) ax.legend (loc='upper right', bbox_to_anchor=(1.3, 1))

plt.tight_layout () plt.show ()

— США: самые большие бюджеты и сборы — Корея: маленькие бюджеты, но хорошая отдача — Великобритания: средние бюджеты, стабильные результаты — Франция: маленькие бюджеты, но хорошая прибыль. У каждой страны своя стратегия.

Программирование для креативных индустрий: киноиндустрия 2000–2020 гг.
Проект создан 14.01.2026
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше