Original size 853x1280

Самые высокооцененные аниме на момент 2022

PROTECT STATUS: not protected

Введение

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

На сайте kaggle.com мною была найдена и проанализирована база данных о всем аниме и связанном анимированным медиа с 1917 по 2022 год. Так как она включает в себя почти 25 тысяч произведений, то было решено рассмотреть первую сотню высокооцененных произведений, так как они предположительно оказали и оказывают наибольшее влияние на современное медиа и медиа ближайшего будущего.

Для наглядности мною было решено использовать столбчатые и круговые диаграммы, так как они проще всего воспринимаются при большом объеме и взаимосвязи нескольких типов данных.

Этапы работы

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

  1. Понятности и считываемости;
  2. Сочетания с общим стилем лонгрида;
  3. Цветового разнообразия.

Это достигалось с помощью кода.

Для понятности очень много времени искал, как настроить все так, чтобы надписи не сливались и выделялись. Также очень помогло настроить сетку.

ax.grid (True, which='both', linestyle='--', linewidth=0.5)

Для сочетания со стителем лонгрида потребовалось поработать с фонами:

ax.set_facecolor ('#f0f0f0') plt.gcf ().set_facecolor ('#B9C9D0')

А для цветового разнообразия в столбчатых диаграммах использовался градиент.

colors = sns.color_palette («viridis», len (studio_counts)) ax.bar (studio_counts.index, studio_counts.values, color=colors)

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

Итоговые графики

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

Original size 1536x754

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np

data = pd.read_csv ('top-100.csv')

print (data.head ())

grouped_data = data.groupby ('Genres')['Score'].mean ().reset_index ()

plt.figure (figsize=(12, 8)) ax = sns.barplot (x='Genres', y='Score', data=grouped_data, palette='viridis') ax.set_ylim (1, 10) ax.yaxis.set_major_locator (plt.MultipleLocator (0.5)) ax.yaxis.set_major_formatter ('{x:.1f}')

ax.set_facecolor ('#f0f0f0') plt.gcf ().set_facecolor ('#B9C9D0') ax.grid (True, which='both', linestyle='--', linewidth=0.5)

plt.title ('Соотношение жанров и рейтинга') plt.xlabel ('Жанры') plt.ylabel ('Рейтинг') plt.xticks (rotation=90) plt.tight_layout () plt.show ()

Далее стал анализировать сколько аниме с разными параметрами попадали в топ 100.

Рассматривались типы произведений, первоисточник, количество эпизодов и студия-создатель.

Original size 1536x754

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np

data = pd.read_csv ('top-100.csv')

print (data.head ())

type_counts = data['Type'].value_counts ()

plt.figure (figsize=(8, 8)) ax = plt.gca () wedges, texts, autotexts = ax.pie (type_counts, labels=None, autopct='%1.1f%%', startangle=140, colors=plt.cm.Paired.colors, pctdistance=1.1)

ax.set_facecolor ('#f0f0f0') plt.gcf ().set_facecolor ('#B9C9D0')

ax.legend (wedges, type_counts.index, title="Типы», loc="center left», bbox_to_anchor=(1, 0, 0.5, 1))

plt.title ('Разделение по типам') plt.axis ('equal') plt.tight_layout () plt.show ()

Original size 1536x754

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np

data = pd.read_csv ('top-100.csv')

print (data.head ())

type_counts = data['Source'].value_counts ()

plt.figure (figsize=(8, 10)) ax = plt.gca () wedges, texts, autotexts = ax.pie (type_counts, labels=None, autopct='%1.1f%%', startangle=140, colors=plt.cm.Paired.colors, pctdistance=1.1)

ax.set_facecolor ('#f0f0f0') plt.gcf ().set_facecolor ('#B9C9D0')

ax.legend (wedges, type_counts.index, title="Типы», loc="center left», bbox_to_anchor=(1, 0, 0.5, 1))

plt.title ('Первоисточники') plt.axis ('equal') plt.tight_layout ()

plt.show ()

Количество произведений по эпизодам может не совсем объективно отражать ситуацию, так как фильмы (1 эпизод), 11-20 эпизодов и 21-50 эпизодов — это в целом самые распространенные форматы.

Original size 1536x754

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np

data = pd.read_csv ('top-100.csv')

print (data.head ())

data['Episodes'] = pd.to_numeric (data['Episodes'], errors='coerce')

def categorize_episodes (episodes): if pd.isna (episodes): return 'Unknown' elif episodes == 1: return '1' elif episodes <= 10: return '1-10' elif episodes <= 20: return '11-20' elif episodes <= 50: return '21-50' elif episodes <= 100: return '51-100' else: return '>100'

data['Episode_Category'] = data['Episodes'].apply (categorize_episodes)

episode_counts = data['Episode_Category'].value_counts ().sort_index ()

plt.figure (figsize=(10, 6)) ax = plt.gca ()

colors = colors = sns.color_palette («viridis», len (episode_counts)) ax.bar (episode_counts.index, episode_counts.values, color=colors)

plt.xlabel ('Эпизоды') plt.ylabel ('Количество произведений') plt.title ('Количество произведений по эпизодам') plt.xticks (rotation=90) plt.tight_layout ()

ax.set_facecolor ('#f0f0f0') plt.gcf ().set_facecolor ('#B9C9D0') ax.grid (True, which='both', linestyle='--', linewidth=0.5)

plt.show ()

Original size 1536x754

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np

data = pd.read_csv ('top-100.csv')

print (data.head ())

studio_counts = data['Studios'].value_counts ().sort_values (ascending=False)

plt.figure (figsize=(12, 8)) ax = plt.gca ()

colors = sns.color_palette («viridis», len (studio_counts)) ax.bar (studio_counts.index, studio_counts.values, color=colors)

plt.xlabel ('Студия') plt.ylabel ('Количество произведений') plt.title ('Сколько у студий произвидений входит в первую сотню') plt.xticks (rotation=90) plt.tight_layout ()

ax.set_facecolor ('#f0f0f0') plt.gcf ().set_facecolor ('#B9C9D0') ax.grid (True, which='both', linestyle='--', linewidth=0.5)

plt.show ()

Заключение

Итак, мы рассмотрели некоторые данные по 100 наиболее высокооцененным аниме.

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

Наиболее успешными являются и скорее всего будут являться сериалы, основанные на манге и выпущенные студиями с наибольшим опытом, бюджетом и количеством персонала.

Датасет и код

Самые высокооцененные аниме на момент 2022
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more