Original size 1024x1536

Формула идеального фильма: визуальный анализ 1000 картин IMDB

PROTECT STATUS: not protected
The project is taking part in the competition
big
Original size 1536x1024

Концепция проекта

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

Цель проекта

Цель проекта — провести комплексный анализ параметров фильмов IMDB с использованием методов визуализации данных, чтобы определить статистически значимые зависимости между характеристиками фильмов и их рейтингами.

Загрузка и подготовка данных

big
Original size 1110x984

Перевод жанров

Original size 2048x804

Создание метки «Высокий рейтинг»

Original size 1042x408

Визуализация и анализ

1. Средний рейтинг по жанрам

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

Жанры «Драма», «Биография» и «История» стабильно показывают самые высокие средние рейтинги. Это говорит о том, что зрители чаще ценят фильмы с эмоциональной глубиной, сильными персонажами и реальными событиями. Комедии, ужасы и фантастика получают более низкие оценки — вероятно, из‑за жанровой специфики: они сильнее зависят от вкуса аудитории и качества исполнения.

0

Столбчатая диаграмма. (Жанры и Рейтинг) Этот график показывает, какие жанры в среднем получают самые высокие оценки зрителей.

Средний рейтинг по жанрам был рассчитан с использованием группировки данных методом groupby (), после чего для каждого жанра вычислялось среднее значение рейтинга через функцию mean (). Полученные результаты были отсортированы по величине рейтинга с помощью sort_values (), что позволило визуализировать жанры в порядке убывания. Для построения диаграммы использовалась функция sns.barplot (), обеспечивающая наглядное сравнение средних значений.

2. Связь длительности и рейтинга

Чтобы проверить гипотезу: «длинные фильмы получают более высокие оценки».

Хотя разброс большой, заметна тенденция: фильмы длительностью 110–140 минут чаще попадают в диапазон рейтингов 7.5–8.5. Это может означать, что более длинные фильмы дают авторам больше пространства для раскрытия сюжета и персонажей, что положительно влияет на восприятие зрителей.

0

Точечная диаграмма. (Длительность и Рейтинг) Этот график показывает, как длительность фильма связана с его рейтингом и есть ли между ними тенденция.

Для анализа взаимосвязи между длительностью фильма и его рейтингом была построена точечная диаграмма с использованием функции sns.scatterplot (). Перед визуализацией были выбраны только необходимые столбцы DataFrame, что позволило избежать лишнего шума. Параметр alpha был использован для уменьшения плотности точек и повышения читаемости графика. Подписи осей были добавлены через plt.xlabel () и plt.ylabel (), а общий стиль графика задавался функцией sns.set_theme ().

3. Количество фильмов 8+ по годам

Чтобы увидеть динамику качества киноиндустрии: растёт ли количество высокооценённых фильмов.

С 2006 по 2016 наблюдается рост числа фильмов с рейтингом 8+. Пик — 2016 год. Это может быть связано с развитием технологий, ростом бюджетов, глобализацией кино и усилением конкуренции между студиями.

0

Линейный график. (Годы и Количество фильмов 8+) Этот график показывает, как менялось число высокооценённых фильмов в разные годы.

Для построения графика динамики фильмов с высоким рейтингом данные были предварительно отфильтрованы по условию df['Рейтинг'] >= 8.0. Затем количество таких фильмов по каждому году рассчитывалось с помощью value_counts () или groupby ('Год').count (). Полученные значения были отсортированы по возрастанию года методом sort_index (). Линейный график строился с использованием sns.lineplot (), а точки на линии добавлялись параметром marker='o' для повышения наглядности.

4. Длительность фильмов 8+ и остальных

Чтобы сравнить распределения длительности и подтвердить выводы из предыдущего графика.

Фильмы с рейтингом 8+ имеют более высокую медиану длительности. Это подтверждает, что «короткие» фильмы реже попадают в топ, а более длинные — чаще оказываются качественными и глубокими.

0

Boxplot. (Категории рейтинга и Длительность) Этот график показывает, отличаются ли по длительности фильмы с высоким рейтингом от остальных.

Для сравнения распределений длительности фильмов была создана бинарная метка Высокий рейтинг на основе условия df['Рейтинг'] >= 8.0. Затем с помощью функции sns.boxplot () был построен график, позволяющий визуально сравнить медиану, межквартильный размах и выбросы в обеих категориях.

5. Топ‑10 фильмов по рейтингу

Чтобы увидеть конкретные примеры фильмов, которые формируют верхушку рейтинга.

В топ‑10 доминируют драмы, криминальные триллеры и психологические истории. Это подтверждает жанровые выводы: зрители ценят эмоциональную сложность, сильные конфликты и глубокие темы.

0

Столбчатая диаграмма. (Топ‑10 фильмов) Этот график показывает десять фильмов с самыми высокими рейтингами в датасете.

Метод nlargest () позволяет быстро выбрать лучшие фильмы по рейтингу.

6. Корреляции между параметрами

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

Сильная корреляция между голосами и сборами — логично: популярные фильмы собирают больше денег. Рейтинг почти не связан со сборами — кассовый успех ≠ качество. Метаскор умеренно коррелирует с рейтингом, но не идеально — критики и зрители оценивают по-разному.

0

Тепловая карта. (Корреляции параметров) Этот график показывает, какие параметры фильма связаны между собой сильнее всего.

Корреляция между всеми переменными была рассчитана с использованием метода .corr (), который вычисляет коэффициенты корреляции Пирсона. Полученная матрица была визуализирована в виде тепловой карты посредством функции sns.heatmap (), что позволило наглядно оценить силу и направление связей между параметрами. Для облегчения интерпретации результатов сложные английские обозначения переменных были заменены на более понятные русские аналоги с использованием словаря rename_dict.

7. Распределение длительности фильмов

Чтобы понять, какова «норма» длительности фильма и где находятся выбросы.

Большинство фильмов длится 90–120 минут. Фильмы длиннее 140 минут — редкость, но среди них чаще встречаются высокооценённые картины.

0

Гистограмма. (Длительность фильмов) Этот график показывает, какие значения длительности встречаются чаще всего.

Для анализа распределения длительности фильмов использовалась функция sns.histplot (), позволяющая строить гистограммы с заданным количеством интервалов (bins). При необходимости добавлялась сглаженная линия плотности (kde=True), что помогало лучше понять форму распределения. Вертикальная линия медианы добавлялась через plt.axvline (), подчёркивая центральную тенденцию данных.

8. Количество фильмов по жанрам

Чтобы увидеть, какие жанры наиболее распространены в индустрии.

Боевики, драмы и комедии — самые массовые жанры. Редкие жанры (биография, фантастика, романтика) встречаются реже, но часто дают высокие рейтинги — «качество вместо количества».

0

Столбчатая диаграмма. (Жанры и Количество фильмов) Этот график показывает, какие жанры встречаются в датасете чаще других.

Для подсчёта количества фильмов в каждом жанре использовался метод value_counts (), после чего данные визуализировались с помощью sns.countplot (). Параметр order позволял отсортировать жанры по частоте появления, а горизонтальная ориентация (y=) обеспечивала лучшую читаемость длинных названий.

9. Средняя длительность по жанрам

Чтобы понять, какие жанры требуют больше экранного времени.

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

0

Столбчатая диаграмма. (Жанры и Средняя длительность) Этот график показывает, какие жанры обычно имеют более длинные или короткие фильмы.

Средняя длительность фильмов по жанрам рассчитывалась с помощью группировки groupby ('Основной жанр') и функции mean (). Затем данные сортировались методом sort_values (), что позволяло визуализировать жанры в порядке увеличения или уменьшения длительности. Для построения графика использовалась функция sns.barplot (), а подписи жанров были повернуты для удобства чтения.

Вывод

Анализ 1000 фильмов IMDB показывает, что высокие рейтинги формируются под влиянием нескольких устойчивых факторов. Чаще всего высокооценённые фильмы относятся к драмам и биографиям — жанрам, которые опираются на сильный сценарий и эмоциональную глубину. Такие фильмы, как правило, длиннее среднего: диапазон 110–140 минут позволяет авторам раскрыть сюжет и персонажей. Динамика по годам демонстрирует рост количества качественных фильмов, что отражает развитие индустрии и повышение стандартов производства. При этом рейтинг почти не связан со сборами: коммерческий успех не гарантирует художественной ценности. В совокупности визуализации показывают, что «идеальный» фильм — это не блокбастер, а продуманная, содержательная история, которая вызывает эмоциональный отклик и предлагает зрителю глубину, а не только зрелищность.

Источники

Датасет: https://www.kaggle.com/datasets/PromptCloudHQ/imdb-data

Нейросеть используемая для подбора цветов и генерирования картинок: https://copilot.microsoft.com

Помощь в написании кода: Google Gemini V3. https://gemini.google.com

Написание кода: Google Collab. https://colab.research.google.com