Original size 1140x1600

Анализ фильмов ужасов

PROTECT STATUS: not protected
18

Вступление

Данные для проекта «Анализ фильмов ужасов» были взяты из csv файла, который содержал базу данных фильмов начиная с 1950 года. Файл был взят с сайта https://www.kaggle.com/datasets/sujaykapadnis/horror-movies-dataset

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

Для данного проекта я использовал следующие графики:

1. Гистограмма.

Она использовалась для распределения оценок фильмов и для распределения продолжительности фильмов.

2.Тепловая карта корреляции между числовыми показателями.

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

3. Графики.

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

4.Диаграмма.

Она показывает распределения фильмов по языкам.

Этапы работы

Первым делом я загрузил файл csv и прочитал первые строки файла для понимания его структуры.

import pandas as pd

file_path = 'horror_movies.csv' horror_movies_df = pd.read_csv (file_path)

horror_movies_df.head ()

Коды для составления графиков

Всем графикам я придал жуткий стиль путем использования красного и черного цвета.

Гистограмма распределения оценок фильмов

import matplotlib.pyplot as plt

plt.style.use ('dark_background') plt.rcParams.update ({ 'axes.edgecolor': 'red', 'axes.linewidth': 1.2, 'xtick.color': 'red', 'ytick.color': 'red', 'text.color': 'white', 'figure.facecolor': 'black', 'axes.facecolor': 'black' })

fig, ax = plt.subplots () ax.hist (horror_movies_df['vote_average'], bins=15, color='red', edgecolor='black') ax.set_title ('Distribution of Movie Ratings', fontsize=15, color='white') ax.set_xlabel ('Rating', fontsize=12, color='white') ax.set_ylabel ('Frequency', fontsize=12, color='white')

ax.spines['bottom'].set_color ('red') ax.spines['top'].set_color ('red') ax.spines['left'].set_color ('red') ax.spines['right'].set_color ('red')

plt.grid (True, linestyle='--', alpha=0.7, color='red') plt.show ()

Тепловая карта корреляции между числовыми показателями

import seaborn as sns import numpy as np

numeric_columns = horror_movies_df[['budget', 'revenue', 'popularity', 'vote_count', 'vote_average']] corr_matrix = numeric_columns.corr ()

fig, ax = plt.subplots (figsize=(10, 8)) sns.heatmap (corr_matrix, annot=True, cmap='Reds', linewidths=0.5, linecolor='black', cbar=True, ax=ax)

ax.set_title ('Correlation Heatmap', fontsize=15, color='white') plt.xticks (fontsize=12, color='white') plt.yticks (fontsize=12, color='white') ax.figure.set_facecolor ('black')

plt.show ()

Гистограмма распределения продолжительности фильмов

fig, ax = plt.subplots () ax.hist (horror_movies_df['runtime'], bins=15, color='darkred', edgecolor='black') ax.set_title ('Distribution of Movie Runtime', fontsize=15, color='white') ax.set_xlabel ('Runtime (minutes)', fontsize=12, color='white') ax.set_ylabel ('Frequency', fontsize=12, color='white')

ax.spines['bottom'].set_color ('darkred') ax.spines['top'].set_color ('darkred') ax.spines['left'].set_color ('darkred') ax.spines['right'].set_color ('darkred')

plt.grid (True, linestyle='--', alpha=0.7, color='darkred') plt.show ()

График динамики популярности фильмов по годам

horror_movies_df['release_year'] = pd.to_datetime (horror_movies_df['release_date'], errors='coerce').dt.year

popularity_by_year = horror_movies_df.groupby ('release_year')['popularity'].mean ().reset_index ()

fig, ax = plt.subplots () ax.plot (popularity_by_year['release_year'], popularity_by_year['popularity'], color='red', marker='o') ax.set_title ('Popularity of Horror Movies Over the Years', fontsize=15, color='white') ax.set_xlabel ('Year', fontsize=12, color='white') ax.set_ylabel ('Average Popularity', fontsize=12, color='white')

ax.spines['bottom'].set_color ('red') ax.spines['top'].set_color ('red') ax.spines['left'].set_color ('red') ax.spines['right'].set_color ('red')

plt.grid (True, linestyle='--', alpha=0.7, color='red') plt.show ()

Диаграмма распределения фильмов по языкам

language_counts = horror_movies_df['original_language'].value_counts ()

fig, ax = plt.subplots (figsize=(25, 6)) language_counts.plot (kind='bar', color='darkred', edgecolor='black') ax.set_title ('Distribution of Horror Movies by Original Language', fontsize=15, color='white') ax.set_xlabel ('Language', fontsize=12, color='white') ax.set_ylabel ('Number of Movies', fontsize=12, color='white')

ax.spines['bottom'].set_color ('darkred') ax.spines['top'].set_color ('darkred') ax.spines['left'].set_color ('darkred') ax.spines['right'].set_color ('darkred')

plt.xticks (rotation=45, ha='right', color='white') plt.yticks (color='white') plt.grid (True, linestyle='--', alpha=0.7, color='darkred') plt.show ()

Сравнение бюджетов и доходов фильмов

fig, ax = plt.subplots () ax.scatter (horror_movies_df['budget'], horror_movies_df['revenue'], color='darkred', edgecolor='black', alpha=0.7) ax.set_title ('Comparison of Movie Budgets and Revenues', fontsize=15, color='white') ax.set_xlabel ('Budget ($)', fontsize=12, color='white') ax.set_ylabel ('Revenue ($)', fontsize=12, color='white')

ax.spines['bottom'].set_color ('darkred') ax.spines['top'].set_color ('darkred') ax.spines['left'].set_color ('darkred') ax.spines['right'].set_color ('darkred')

plt.grid (True, linestyle='--', alpha=0.7, color='darkred') plt.xscale ('log') plt.yscale ('log') plt.show ()

Графики

Original size 1750x1100
Original size 1524x1364
Original size 1750x1100
Original size 1718x1100
Original size 2034x565
Original size 1701x1102

Выводы на основе анализа

Гистограмма распределения оценок фильмов

Вывод: На гистограмме видно, что большинство фильмов имеют оценки в диапазоне от 6 до 8 баллов. Это говорит о том, что зрители в целом положительно оценивают фильмы ужасов, представленные в датасете. Средние оценки выше 8 или ниже 5 встречаются реже, что может указывать на более узкий круг фильмов, которые зрители считают либо отличными, либо очень плохими.

Тепловая карта корреляции между числовыми показателями

Вывод: Тепловая карта показывает, что существует сильная положительная корреляция между количеством голосов (vote_count) и популярностью (popularity). Это означает, что фильмы с большим количеством голосов, как правило, более популярны. Корреляция между бюджетом и доходом также положительная, но не такая сильная, что может указывать на то, что более высокие бюджеты часто приводят к более высоким доходам, но не всегда.

Гистограмма распределения продолжительности фильмов

Вывод: Большинство фильмов имеют продолжительность от 90 до 120 минут. Это соответствует стандартной длине для полнометражных фильмов. Фильмы короче 60 минут или длиннее 150 минут встречаются редко, что может говорить о том, что режиссеры предпочитают придерживаться классической продолжительности, чтобы удержать внимание зрителей.

График динамики популярности фильмов по годам

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

Диаграмма распределения фильмов по языкам

Вывод: На диаграмме видно, что подавляющее большинство фильмов ужасов в датасете сняты на английском языке. Это может быть связано с доминированием Голливуда в производстве фильмов ужасов. Другие языки, такие как испанский, французский и японский, также представлены, что показывает наличие международного интереса к жанру.

Сравнение бюджетов и доходов фильмов

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

Описание применения генеративной модели

Для создания обложки проекта был использован chatGPT 4o https://openai.com/

Также для создания графиков использовался chatGPT 4o https://openai.com/

Анализ фильмов ужасов
18
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more