Original size 1200x1826

Анализ фильмов «Гарри Поттер»

PROTECT STATUS: not protected
The project is taking part in the competition
The_Movie_Soundtrack_Orchestra_-_Harry_Potter_Main_Theme_48696989
3 min
big
Original size 480x270

ОПИСАНИЕ

Проект анализирует фильмы Wizarding World (основная серия Harry Potter и спин-оффы Fantastic Beasts): бюджеты, мировые сборы и зрительское восприятие. В Pandas выполняется очистка данных и расчёт метрик (включая ROI), а в matplotlib строится серия графиков в едином стиле (шрифт Cinzel Decorative + заданная палитра). Визуализации показывают динамику масштаба франшизы, эффективность отдельных фильмов и связь рейтингов IMDb с кассовыми результатами.

big
Original size 1080x716

Подготовка датасета и настройка оформления

Загрузка библиотеки

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rcParams import matplotlib.font_manager as fm

Обоснование шрифта

Для проекта выбран шрифт Cinzel Decorative — декоративный serif с «классической» каллиграфической атмосферой, которая хорошо совпадает с визуальным языком мира Harry Potter: старинные книги, пергамент, готические и исторические мотивы Хогвартса. Он особенно выразителен в заголовках и акцентных подписях, поэтому помогает сделать инфографику «кинематографичной» и цельной. Шрифт подключается в matplotlib через .ttf, поэтому типографика полностью задаётся кодом: одинаково воспроизводится на любой машине и сохраняет единый стиль во всех графиках.

Код для подключения кастомного шрифта

import matplotlib.pyplot as plt import matplotlib.font_manager as fm from matplotlib import rcParams import os

font_candidates = [ «CinzelDecorative-Regular.ttf», «/mnt/data/CinzelDecorative-Regular.ttf», ]

font_path = None for p in font_candidates: if os.path.exists (p): font_path = p break

if font_path: try: fm.fontManager.addfont (font_path) prop = fm.FontProperties (fname=font_path) rcParams[«font.family»] = prop.get_name () rcParams[«font.sans-serif»] = [prop.get_name ()] rcParams[«axes.unicode_minus»] = False except: pass

Original size 500x218

Для визуализаций выбрана палитра в стиле «пергамент + гербовая магия»: бордовый

641e1e, золото

c39a1c, тёплый коричневый

3d2f22, нейтральный слейт

717679 и светлый пергамент #efeee9. Пергамент используется как фон, чтобы графики выглядели «как страница из хроник» и не утомляли глаз. Бордовый и золото работают как главные акценты (ключевые линии/медианы/важные точки), коричневый — для текста и осей, слейт — для вторичных элементов и сетки. Благодаря ограниченной палитре все визуализации воспринимаются как единая серия.

Код для палитры и общего офрмления

import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rcParams

BURGUNDY = «641e1e» GOLD = «c39a1c» BROWN = «3d2f22» SLATE = «717679» PARCHMENT = «efeee9»

PARCHMENT_DIM = «e6e4dd» SLATE_DIM = «8a8f92»

extended_palette = [GOLD, BURGUNDY, BROWN, SLATE, PARCHMENT] sns.set_palette (extended_palette)

sns.set_style («white»)

rcParams.update ({ «axes.facecolor»: PARCHMENT, «figure.facecolor»: PARCHMENT, «savefig.facecolor»: PARCHMENT,

«axes.edgecolor»: BROWN,
«axes.labelcolor»: BROWN,
«xtick.color»: BROWN,
«ytick.color»: BROWN,
«text.color»: BROWN,

«axes.titlecolor»: BURGUNDY,

«axes.grid»: True,
«grid.color»: SLATE_DIM,
«grid.linestyle»: «-»,
«grid.linewidth»: 0.6,
«grid.alpha»: 0.35,

«font.size»: 12,
«axes.titlesize»: 16,
«axes.labelsize»: 13,
«xtick.labelsize»: 11,
«ytick.labelsize»: 11,
«legend.fontsize»: 11,
«figure.titlesize»: 18,

«axes.spines.top»: False,
«axes.spines.right»: False,

«legend.frameon»: True,
«legend.facecolor»: PARCHMENT_DIM,
«legend.edgecolor»: SLATE_DIM,

«lines.linewidth»: 2.2,
«lines.markersize»: 6,

})

Original size 1200x500
Original size 1636x748
Original size 1200x1280
Original size 1081x812
Original size 1629x828
Original size 1689x857
Original size 917x1280
Original size 1045x633
Original size 498x204
Original size 1411x796
Original size 1129x1280
Original size 1280x951
Original size 1197x1280
Original size 1280x1247
Original size 1280x699
Original size 804x421
Original size 1780x896
Original size 1212x1280
Original size 1280x884
Original size 480x270
Original size 480x270
Loading...
Original size 736x478
Original size 500x212

Ссылка на датасет