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

Для анализа я выбрала данные о популярных фильмах, включающие:
Название фильма; Год выпуска; Жанр; Бюджет; Кассовые сборы; IMDb рейтинг — оценка зрителей; Rotten Tomatoes (%) — оценка кинокритиков
Эти данные были собраны из открытых источников, таких как:
IMDb (Internet Movie Database) — крупнейшая база данных фильмов, сериалов и актеров
Box Office Mojo — ресурс, отслеживающий сборы фильмов в мировом прокате
Kaggle — платформа с наборами данных для анализа
Я составила таблицу на основе данных за разные годы, чтобы проанализировать, какие факторы влияют на популярность и успех фильмов.
Для наглядного представления данных будут использованы:
- Линейные графики — для отображения изменений средних рейтингов, бюджетов и сборов по годам.
- Столбчатые диаграммы — для сравнения бюджетов и сборов разных фильмов, а также для анализа популярных жанров.
- Гистограммы — для распределения фильмов по рейтингам и сборам.
- Диаграмма рассеяния — чтобы выявить взаимосвязь между бюджетами и рейтингами/сборами.
Для своего вдохновения я использовала изображения снятые на плёнку, а также записи, сделанные в стиле напечатанного сценария. В таком же стиле будут и графики.
Обработка данных
В коде были использованы такие библиотеки: pandas для работы с датасетом (csv-файл), matplotlib.pyplot для рисования графиков, numpy для выполнения числовых вычислений и scipy.interpolate для сглаживания и интерполяции данных.
В начале я импортировала библиотеки, которые мне будут нужны: numpy, matplotlib.pyplot и pandas. После этого действия считала скачанный csv-файл датасета.
Далее для гисторграммы сделала разделение данных по бюджетам
low_budget = df[df['Бюджет ($ млн)'] < 50]['Бюджет ($ млн)'] high_budget = df[df['Бюджет ($ млн)'] >= 50]['Бюджет ($ млн)']
Далее я сделала стилизацию цветов под атмосферу киноиндустрии
Стилизация в пастельных красном, желтом и серебристом тонах film_colors = ['#E57373', '#FDD835', '#B0BEC5', '#FFF9C4', '#FFCDD2'] # Красный, желтый, серебристый пастельные тона font1 = {'fontsize': 14, 'fontweight': 'bold', 'color': '#D32F2F'} font2 = {'fontsize': 10, 'fontstyle': 'italic', 'color': '#424242'}
Визуализация данных
Круговая диаграмма которая распределяет фильмы по жанрам
Построение круговой диаграммы
fig, ax = plt.subplots () fig.patch.set_facecolor ('white') plt.pie (value, labels=name, labeldistance=0.6, colors=film_colors, startangle=45, textprops=font2, wedgeprops={'linewidth': 2.0, 'edgecolor': '#424242'}, autopct='%1.1f%%') plt.title («Распределение фильмов по жанрам», fontdict=font1) fig.savefig ('pie_chart.jpg', facecolor='white') plt.show ()
Гистограмма для понимания распределения бюджетов фильмов
Делаю разделение данных по бюджетам low_budget = df[df['Бюджет ($ млн)'] < 50]['Бюджет ($ млн)'] high_budget = df[df['Бюджет ($ млн)'] >= 50]['Бюджет ($ млн)']
Гистограмма распределения бюджетов
plt.figure (figsize=(10, 5)) plt.gcf ().set_facecolor ('white') sns.histplot (low_budget, bins=20, color='#E57373', label='Бюджет < 50 млн $', kde=True) sns.histplot (high_budget, bins=20, color='#B0BEC5', label='Бюджет >= 50 млн $', kde=True) plt.title («Распределение бюджетов фильмов», fontdict=font1) plt.xlabel («Бюджет ($ млн)», color='#D32F2F') plt.ylabel («Количество фильмов», color='#D32F2F') plt.legend () plt.grid (color='#757575', linestyle='--', linewidth=0.5) plt.show ()
Далее делаю группировку по году и жанру, подсчет количества фильмов movies_per_year = df.groupby (['Год', 'Жанр']).size ().reset_index (name='Количество')
Гистограмма количества фильмов по годам
plt.figure (figsize=(12, 6)) plt.gcf ().set_facecolor ('white') sns.barplot (data=movies_per_year, x='Год', y='Количество', hue='Жанр', palette=film_colors) plt.title («Количество фильмов по годам и жанрам», fontdict=font1) plt.xlabel («Год», color='#D32F2F') plt.ylabel («Количество фильмов», color='#D32F2F') plt.xticks (rotation=45, color='#424242') plt.yticks (color='#424242') plt.legend (title="Жанр», bbox_to_anchor=(1.05, 1), loc='upper left', labelcolor='#D32F2F') plt.grid (color='#757575', linestyle='--', linewidth=0.5) plt.show ()
Построение рассеянной диаграммы
plt.figure (figsize=(10, 6)) plt.gcf ().set_facecolor ('white') sns.scatterplot (data=df, x='Бюджет ($ млн)', y='Сборы ($ млн)', hue='Жанр', palette=film_colors, s=100)
Настройка заголовка и меток осей plt.title («Зависимость сборов от бюджета фильмов», fontdict=font1) plt.xlabel («Бюджет ($ млн)», color='#D32F2F') plt.ylabel («Сборы ($ млн)», color='#D32F2F') plt.legend (title="Жанр», bbox_to_anchor=(1.05, 1), loc='upper left', labelcolor='#D32F2F')
Настройка сетки plt.grid (color='#757575', linestyle='--', linewidth=0.5) plt.show ()
Итог анализа
На основе полученных данных можно сделать следующий вывод: Наиболее представленным жанром в данных является Action (боевики), за которым следуют Sci-Fi (научная фантастика) и Animation (анимация). Жанры Drama (драма) и Animation также имеют значительное количество фильмов, что говорит о популярности этих категорий среди зрителей.
Большинство фильмов имеют бюджет выше 50 млн долларов. Фильмы с бюджетом менее 50 млн долларов встречаются реже, что может свидетельствовать о том, что такие проекты либо менее популярны, либо их меньше в выборке.
Фильмы с высоким бюджетом, как правило, имеют более высокие сборы, но успех также зависит от жанра и качества фильма. Жанры Action и Sci-Fi доминируют в списке самых кассовых фильмов, что делает их наиболее прибыльными категориями.
Описание применения генеративной модели
Для своей работы я использовала Chat-GPT 4.0. С помощью него я смогла подготовить датасет для использования в диаграммах, а также кастомизировать цветовую палитру. https://openai.com/index/chatgpt/
Обложка проекта сделана с помощью www.recraft.ai
Список источников
IMDb (Internet Movie Database) https://www.imdb.com/ The Movie Database (TMDb) https://www.themoviedb.org/ Kaggle Datasets https://www.kaggle.com/datasets Wikipedia (разделы о фильмах и их сборах) https://www.wikipedia.org/
Ссылка на блокнот
