У кого самый умный, самый сильный, самый быстрый или самый сильный герой или злодей? Как ответить на этот и другие вопросы с помощью R

С детства нас привлекала идея о том, что существуют экстраординарные существа со сверхчеловеческими способностями, нас увлекает мысль о моральных последствиях и обязанностях, которые влечет за собой наличие «дара», которое отличает нас от обычного человека. Нам хочется думать о вечной борьбе между добром и злом и о том, что, возможно, мир может быть спасен одной из этих сущностей. Будь то мутация, радиация, какое-то космическое событие, укус паука или что-то еще, могу поспорить, что у вас, дорогой читатель, есть любимый супергерой. В настоящее время существуют сотни издателей комиксов, переносящих наше воображение в другие миры и вселенные, некоторые издатели более известны, чем другие, но два из них, с которыми мы особенно знакомы: DC Comics и Marvel Comics.

Оба издателя, с момента создания своих первых супергероев и злодеев до наших дней, постоянно соревнуются в том, чтобы предложить своим поклонникам лучшее развлечение. Лично я думаю, что на все есть свои вкусы и аудитория, у меня есть любимые персонажи от обоих издателей, однако мы можем показать, какой из них выделяется в определенных аспектах, касающихся их персонажей, чтобы положить конец таким дискуссиям, как «Халк победит Супермена!», Ибо пример.

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

Где я могу получить данные о DC Comics и Marvel Comics?

Кто-то уже давно обратился к нам и создал веб-сайт, на котором собрана информация о персонажах не только из DC и Marvel, но и практически о любых персонажах и их вариациях практически из любой вселенной комиксов: SHDB (База данных супергероев) ) .

Каждый персонаж на странице показывает свои особые характеристики и атрибуты, давая оценку их способностям и навыкам, которые могут варьироваться от 0 до 100. Вы также можете найти их суперспособности, географическую информацию, биографию, среди прочего.

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

Чтение данных

Что ж, теперь вы готовы запустить новый сценарий R, начиная с загрузки библиотек, которые вы будете использовать, а также с чтения трех наборов данных с информацией, полученной из SHDB (База данных супергероев). Поскольку вас интересуют только данные DC Comics и Marvel Comics, вы создадите подмножество только для этих двух издателей (поскольку оно содержит информацию для многих других), а также удалите повторяющиеся имена персонажей, чтобы каждое имя было уникальным.

# REQUIRED LIBRARIES
library(ggplot2)
library(reshape2)
library(plyr)
library(dplyr)
library(gridExtra)
library(wesanderson)
library(pander)
library(plotly)
# READ DATASETS
infoCharacters <- read.csv("dataset_shdb/heroesInformation.csv", na.strings = c("-", "-99"))
infoPowers <- read.csv("dataset_shdb/superHeroPowers.csv")
infoStats <- read.csv("dataset_shdb/charactersStats.csv", na.strings = "")
# SUBSET FOR MARVEL AND DC
colnames(infoCharacters)[colnames(infoCharacters) == "name"] <- "Name"
marvelDcInfo <- infoCharacters[(infoCharacters$Publisher == "Marvel Comics" | infoCharacters$Publisher == "DC Comics"), ]
# REMOVE NAME DUPLICATES AND SELECT COLUMNS
marvelDcInfo <- marvelDcInfo[!duplicated(marvelDcInfo$Name), ]
marvelDcInfo <- marvelDcInfo %>%
  select(Name, Gender, Race, Publisher)

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

# JOIN DATASETS
marvelDcStatsInfo <- join(marvelDcInfo, infoStats, by = "Name", type = "inner")
colnames(infoPowers)[colnames(infoPowers) == "hero_names"] <- "Name"
fullMarvelDc <- join(marvelDcStatsInfo, infoPowers, by = "Name", type = "inner")

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

Вы можете преобразовать их в один столбец, содержащий все эти сверхспособности, чтобы упростить данные, используя функцию «melt ()».

# TRANSFORM INTO A SINGLE COLUMN SUPER POWER
marvelDc <- melt(fullMarvelDc, id = c("Name", "Gender", "Race", "Publisher", "Alignment", "Intelligence", 
                                         "Strength", "Speed", "Durability", "Power", "Combat", "Total"))
colnames(marvelDc)[colnames(marvelDc) == "variable"] <- "SuperPower"
marvelDc <- marvelDc %>%
  filter(value == "True") %>%
  select(-value)

Сколько наблюдений есть во вселенной каждого издателя комиксов?

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

# CONVERT CATEGORICAL COLUMNS TO FACTORS
marvelDc$Name <- as.factor(marvelDc$Name)
marvelDc$Gender <- as.factor(marvelDc$Gender)
marvelDc$Race <- as.factor(marvelDc$Race)
marvelDc$Publisher <- as.factor(marvelDc$Publisher)
marvelDc$Alignment <- as.factor(marvelDc$Alignment)
marvelDc$SuperPower <- as.factor(marvelDc$SuperPower)
# CUSTOM PALETTES
dcMarvelPalette <- c("#0476F2", "#EC1E24")
goodBadPalette <- c("#E58700", "#0EBF7D", "#C99902")
# DATA OBSERVATIONS IN EACH PUBLISHER
ggplot(marvelDc, aes(x = Publisher, fill = Publisher)) + 
  geom_bar(stat = "count", aes(fill = Publisher)) +
  labs(x = "Publisher", y = "No. of Characters", title = "DC and Marvel Characters", subtitle = "No. of Characters each publisher") +
  geom_label(stat = "count", aes(label = ..count..)) +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

Вы получите сюжет, подобный приведенному ниже, на который вы можете сначала взглянуть. Будьте осторожны, вы должны учитывать, что набору данных, с которым вы работаете, три года (он может быть устаревшим, если в последние годы были выпущены новые герои или злодеи). В настоящее время ходят разговоры о том, что у Marvel есть база данных из более чем 7000 персонажей, в то время как у DC - более 20000, но помните, что мы говорим только о героях и злодеях (главных персонажах), и мы имеем дело только с персонажами комиксов.

Какой пол преобладает у персонажей DC Comics и Marvel Comics?

Как вы, возможно, заметили, у вас есть в наборе данных переменная «пол», с помощью которой мы можем ответить на этот вопрос, чтобы наблюдать, сколько персонажей - мужчины, а сколько - женщины.

# MALES AND FEMALES IN DC AND MARVEL
marvelDcGender <- marvelDc %>%
  filter(!is.na(Gender)) %>%
  group_by(Gender) %>%
  dplyr::count(Publisher) %>%
  select(Gender, Publisher, Count = n)
ggplot(marvelDcGender, aes(x = Gender, y = Count)) +
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Gender", y = "No. of Characters", title = "DC and Marvel Characters", subtitle = "Gender comparison") +
  geom_label(stat = "identity", aes(label = Count)) +
  facet_wrap(~Publisher) +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

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

Какие расы преобладают в персонажах DC Comics и Marvel Comics?

Происхождение суперсил наших любимых супергероев и злодеев может быть разным, но, несомненно, многие из них имеют общее происхождение или расу. Вы можете посмотреть, какие расы задают тенденцию в персонажах каждого издателя, поскольку в наборе данных есть переменная «гонка». Допустим, вы хотите попасть в топ-15 самых популярных гонок.

# RACE DIFFERENCE BETWEEN MARVEL AND DC
DCRace <- marvelDc %>%
  filter(!is.na(Race)) %>%
  filter(Publisher == "DC Comics") %>%
  group_by(Race) %>%
  dplyr::count(Race) %>%
  select(Race, Count = n) %>%
  arrange(-Count)
DCRace <- ggplot(DCRace[1:15, ], aes(x = reorder(Race, Count), y = Count)) + 
  geom_bar(stat = "identity", aes(fill = Race)) +
  labs(x = "Race", y = "No. of Characters", title = "DC Character Races", subtitle= "Top 15 races") +
  geom_label(stat = "identity", aes(label = Count)) +
  coord_flip() +
  guides(fill = FALSE, alpha = FALSE) +
  theme_bw()
marvelRace <- marvelDc %>%
  filter(!is.na(Race)) %>%
  filter(Publisher == "Marvel Comics") %>%
  group_by(Race) %>%
  dplyr::count(Race) %>%
  select(Race, Count = n) %>%
  arrange(-Count)
marvelRace <- ggplot(marvelRace[1:15, ], aes(x = reorder(Race, Count), y = Count)) + 
  geom_bar(stat = "identity", aes(fill = Race)) +
  geom_label(stat = "identity", aes(label = Count)) +
  labs(x = "Race", y = "No. of Characters", title = "Marvel Character Races", subtitle= "Top 15 races") +
  coord_flip() +
  guides(fill = FALSE, alpha = FALSE) +
  theme_bw()
grid.arrange(DCRace, marvelRace, ncol = 2)

Вы можете видеть, что и для Marvel, и для DC преобладающей расой являются люди. Еще одна вещь, которую следует отметить, это то, что Marvel удивительно создала слишком много персонажей расы мутантов.

У кого больше героев или злодеев, комиксов DC или Marvel?

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

# HEROES AND VILLIANS IN MARVEL AND DC
marvelDcAlignment <- marvelDc %>%
  filter(!is.na(Alignment)) %>%
  group_by(Alignment) %>%
  dplyr::count(Publisher) %>%
  select(Alignment, Publisher, Count = n)
ggplot(marvelDcAlignment, aes(x = Alignment, y = Count)) +
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Alignment", y = "No. of Characters", title = "DC and Marvel Alignment", subtitle= "Heroes, Villains and Neutral comparison") +
  guides(fill = FALSE) +
  geom_label(stat = "identity", aes(label = Count)) +
  facet_wrap(~Publisher) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

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

Общее сравнение навыков персонажей DC Comics и Marvel Comics

Если вы наблюдали остальные переменные, которые есть в наборе данных, вы наверняка могли заметить, что в нем есть, в частности, шесть переменных, которые имеют функцию измерения способностей персонажей в диапазоне от нуля до ста: «Интеллект» , «Сила», «Скорость», «Прочность», «Мощность» и «Бой». Вы можете визуализировать общее сравнение обоих издателей в этих аспектах их персонажей с помощью коробчатых диаграмм.

# BOX PLOT COMPARISON SKILLS MARVEL AND DC
### INTELLIGENCE
boxIntel <- ggplot(marvelDc, aes(x = Publisher, y = Intelligence, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "", title = "DC and Marvel Characters", subtitle = "Comparison of Intelligence") +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)
### STRENGTH
boxStrength <- ggplot(marvelDc, aes(x = Publisher, y = Strength, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "", title = "DC and Marvel Characters", subtitle = "Comparison of Strength") +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)
### SPEED
boxSpeed <- ggplot(marvelDc, aes(x = Publisher, y = Speed, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "", title = "DC and Marvel Characters", subtitle = "Comparison of Speed") +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)
### DURABILITY
boxDurability <- ggplot(marvelDc, aes(x = Publisher, y = Durability, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "", title = "DC and Marvel Characters", subtitle = "Comparison of Durability") +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)
### POWER
boxPower <- ggplot(marvelDc, aes(x = Publisher, y = Power, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "", title = "DC and Marvel Characters", subtitle = "Comparison of Power") +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)
### COMBAT
boxCombat <- ggplot(marvelDc, aes(x = Publisher, y = Combat, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "", title = "DC and Marvel Characters", subtitle = "Comparison of Combat") +
  guides(fill = FALSE) +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)
grid.arrange(boxIntel, boxStrength, boxSpeed, boxDurability, boxPower, boxCombat,  ncol = 2)

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

Какие самые умные персонажи в DC Comics и Marvel Comics?

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

# TOP CHARACTERS HIGHEST INTELLIGENCE MARVEL AND DC
marvelDcIntel <- marvelDc %>%
  group_by(Name, Publisher) %>%
  distinct(Intelligence) %>%
  select(Name, Intelligence) %>%
  arrange(-Intelligence)
ggplot(marvelDcIntel[1:30, ], aes(x = reorder(Name, Intelligence), y = Intelligence)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  ylim(0, 120) +
  labs(x = "Character", y = "Intelligence", title = "Top 30 Marvel and DC Characters", subtitle = "With Highest Intelligence") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

Все указывает на то, что в Marvel самые умные персонажи, хотя самых умных возглавляет, в частности, персонаж из DC: Mister Mxyzptlk.

Какие самые сильные персонажи в DC Comics и Marvel Comics?

Вы можете повторить предыдущее упражнение, изменив соответствующую переменную, соответствующую силе, чтобы теперь получить 30 самых сильных персонажей от обоих издателей.

# TOP CHARACTERS HIGHEST STRENGTH MARVEL AND DC
marvelDcStrength <- marvelDc %>%
  group_by(Name, Publisher) %>%
  distinct(Strength) %>%
  select(Name, Strength) %>%
  arrange(-Strength)
ggplot(marvelDcStrength[1:30, ], aes(x = reorder(Name, Strength), y = Strength)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Character", y = "Strength", title = "Top 30 Marvel and DC Characters", subtitle = "With Highest Strength") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

Вы получите сюжет, подобный следующему, где вы снова можете увидеть, что у Marvel самое большое количество сильнейших персонажей в топе. Мы также можем сделать вывод, что если вы посадите Халка с Суперменом за стол, строго для боя «армрестлинга», все будет очень даже.

Какие персонажи в DC Comics и Marvel Comics самые быстрые?

Еще один вопрос, на который вы можете ответить точно так же, используя переменную, соответствующую скорости персонажей, для визуализации топ-30.

# TOP CHARACTERS HIGHEST SPEED MARVEL AND DC
marvelDcSpeed <- marvelDc %>%
  group_by(Name, Publisher) %>%
  distinct(Speed) %>%
  select(Name, Speed) %>%
  arrange(-Speed)
ggplot(marvelDcSpeed[1:30, ], aes(x = reorder(Name, Speed), y = Speed)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Character", y = "Speed", title = "Top 30 Marvel and DC Characters", subtitle = "With Highest Speed") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

На этот раз в топе DC - тот, у кого самые быстрые персонажи в обеих вселенных издателя. Интересный факт: Flash во вселенной DC намного быстрее, чем Quicksilver. В комиксе-кроссовере Marvel vs. DC эти двое сражались во вселенной Marvel, что замедлило Флэша до уровня, подобного Quicksilver ... и все же победило. Я имею ввиду, что бы там ни было, Flash все равно быстрее.

Какие персонажи в DC Comics и Marvel Comics самые стойкие?

Под «стойкостью» понимают устойчивость к физическим повреждениям. Вы также можете изучить первые 30 персонажей с наибольшей стойкостью, учитывая их переменную в наборе данных.

# TOP CHARACTERS HIGHEST DURABILITY MARVEL AND DC
marvelDcDur <- marvelDc %>%
  group_by(Name, Publisher) %>%
  distinct(Durability) %>%
  select(Name, Durability) %>%
  arrange(-Durability)
ggplot(marvelDcDur[1:30, ], aes(x = reorder(Name, Durability), y = Durability)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  ylim(0, 120) +
  labs(x = "Character", y = "Durability", title = "Top 30 Marvel and DC Characters", subtitle = "With Highest Durability") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

Как вы можете видеть, аналогично результатам, полученным вами с переменной Интеллект, на этот раз относительно Долговечности, хотя у Marvel есть самые стойкие персонажи наверху, DC - тот, у кого есть персонаж в первую очередь: грозный суперзлодей Судный день. .

Какие персонажи обладают наибольшей силой в DC Comics и Marvel Comics?

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

# TOP CHARACTERS HIGHEST POWER MARVEL AND DC
marvelDcPow <- marvelDc %>%
  group_by(Name, Publisher) %>%
  distinct(Power) %>%
  select(Name, Power) %>%
  arrange(-Power)
ggplot(marvelDcPow[1:30, ], aes(x = reorder(Name, Power), y = Power)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Character", y = "Power", title = "Top 30 Marvel and DC Characters", subtitle = "With Highest Power") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

Вы получите сюжет, подобный следующему, в котором вы можете видеть, что, по крайней мере, в верхней части, Marvel - это тот, у кого есть персонажи с наивысшей силой. Фактически, оба издателя наделили силой довольно много персонажей, и если из любопытства вы продолжите рисовать графики, вы заметите, что только после 50 лучших персонажей максимальный уровень персонажей снижается.

Какие персонажи наиболее опытны в бою в DC Comics и Marvel Comics?

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

# TOP CHARACTERS HIGHEST COMBAT SKILLS MARVEL AND DC
marvelDcCombat <- marvelDc %>%
  group_by(Name, Publisher) %>%
  distinct(Combat) %>%
  select(Name, Combat) %>%
  arrange(-Combat)
ggplot(marvelDcCombat[1:30, ], aes(x = reorder(Name, Combat), y = Combat)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Character", y = "Combat", title = "Top 30 Marvel and DC Characters", subtitle = "With Highest Combat Skills") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

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

У кого самые сильные персонажи, DC Comics или Marvel Comics?

Теперь, когда вы просмотрели каждую характеристику навыка по отдельности, было бы неплохо взглянуть на общую статистику в целом, чтобы увидеть, у какого издателя действительно самые сильные персонажи. совокупность способностей (Интеллект + Сила + Скорость + Прочность + Сила + Бой) делает их несравненными. Для этого в вашем наборе данных уже есть переменная, которая содержит указанную информацию для каждого символа: «Всего». Вы можете визуализировать общее сравнение с помощью коробчатой ​​диаграммы.

# BOXPLOT OVERALL STATS COMPARISION MARVEL AND DC
ggplot(marvelDc, aes(x = Publisher, y = Total, fill = Publisher)) + 
  geom_boxplot() +
  labs(x = "Publisher", title = "DC and Marvel Characters", subtitle =  "Most Powerful Characters Comparison (Sum of abilities)") +
  theme_bw() + 
  scale_fill_manual(values=dcMarvelPalette)

И вот так, дорогой читатель, вы сможете визуально заметить, что, хотя медиана обеих издательских вселенных очень близка, медиана DC немного выше.

Какие персонажи в DC Comics и Marvel Comics самые сильные?

Вопрос на миллион долларов. Как только вы поняли, что переменная «Всего» складывается из суммы всех перечисленных навыков, вы также можете подробно изучить, скажем, 20 самых влиятельных персонажей в каждой вселенной издателя. И вы также можете спросить себя, есть ли какая-либо связь между принадлежностью к какой-либо стороне (героям или злодеям) и нахождением на первых позициях в топе.

# TOP POWERFUL CHARACTERS MARVEL AND DC
dcTotal <- marvelDc %>%
  filter(Publisher == "DC Comics") %>%
  group_by(Name, Alignment) %>%
  distinct(Total) %>%
  select(Name, Total) %>%
  arrange(-Total)
dcTotal <- ggplot(dcTotal[1:20, ], aes(x = reorder(Name, Total), y = Total)) + 
  geom_bar(stat = "identity", aes(fill = Alignment)) +
  labs(x = "Character", y = "Total", title = "Top 20 DC Characters", subtitle = "Most Powerful Heroes or Villains") +
  coord_flip() +
  theme_bw() + 
  scale_fill_manual(values=goodBadPalette, labels = c("villain", "hero", "neutral"))
marvelTotal <- marvelDc %>%
  filter(Publisher == "Marvel Comics") %>%
  group_by(Name, Alignment) %>%
  distinct(Total) %>%
  select(Name, Total) %>%
  arrange(-Total)
marvelTotal <- ggplot(marvelTotal[1:20, ], aes(x = reorder(Name, Total), y = Total)) + 
  geom_bar(stat = "identity", aes(fill = Alignment)) +
  labs(x = "Character", y = "Total", title = "Top 20 Marvel Characters", subtitle = "Most Powerful Heroes or Villains") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=goodBadPalette, labels = c("villain", "hero", "neutral"))
grid.arrange(dcTotal, marvelTotal, ncol = 2)

Как насчет… Вы ожидали таких результатов? Вы увидите, что у DC больше всего персонажей, сумма способностей которых делает их самыми могущественными. Также следует отметить кое-что любопытное, что DC также подарил своим злодеям немного больше, чем своим героям, по сравнению с Marvel.

Какие суперсилы преобладают у персонажей DC Comics и Marvel Comics?

Суперсила, тепловое зрение, суперскорость, способность летать - вот лишь некоторые из множества сверхчеловеческих способностей, которыми создатели DC и Marvel наделили своих персонажей, оставив нас фантазировать о том, что мы могли бы сделать, если бы у нас был хотя бы один из этих. Вы можете увидеть, какие суперсилы преобладают у каждого издателя в целом, благодаря переменной, которую вы преобразовали почти в самом начале, помните? и который теперь называется «Суперсила» и содержится в вашем наборе данных. Допустим, вы хотите получить топ-20 самых настоящих суперсил каждого издателя.

# TOP SUPERPOWERS MARVEL AND DC
dcSuperP <- marvelDc %>%
  filter(Publisher == "DC Comics") %>%
  group_by(SuperPower) %>%
  dplyr::count(SuperPower) %>%
  select(SuperPower, Count = n) %>%
  arrange(-Count)
dcSuperP <- ggplot(dcSuperP[1:20, ], aes(x = reorder(SuperPower, Count), y = Count)) + 
  geom_bar(stat = "identity", aes(fill = SuperPower)) +
  geom_label(stat = "identity", aes(label = Count)) +
  labs(x = "Superpower", y = "No. of Characters", title = "DC Comics", subtitle = "Top 20 Superpowers") +
  guides(fill = FALSE) +
  coord_flip() +
  theme_bw()
marvelSuperP <- marvelDc %>%
  filter(Publisher == "Marvel Comics") %>%
  group_by(SuperPower) %>%
  dplyr::count(SuperPower) %>%
  select(SuperPower, Count = n) %>%
  arrange(-Count)
marvelSuperP <- ggplot(marvelSuperP[1:20, ], aes(x = reorder(SuperPower, Count), y = Count)) + 
  geom_bar(stat = "identity", aes(fill = SuperPower)) +
  geom_label(stat = "identity", aes(label = Count)) +
  labs(x = "Superpower", y = "No. of Characters", title = "Marvel Comics", subtitle = "Top 20 Superpowers") +
  guides(fill = FALSE) +
  coord_flip() +
  theme_bw()
grid.arrange(dcSuperP, marvelSuperP, ncol = 2)

Что вы сразу заметите в полученном сюжете, так это то, что обе вселенные издателя разделяют в первую очередь суперсилу суперсилы, преобладающую в их персонажах. И что любопытно, следующие четыре суперспособности, хотя и в разном порядке значимости, присутствуют на вершине как Marvel, так и DC.

Какие персонажи обладают наибольшими сверхспособностями в DC Comics и Marvel Comics?

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

# TOP CHARACTERS HIGHEST No. OF SUPERPOWERS
marvelDcSuperP <- marvelDc %>%
  group_by(Name, Publisher) %>%
  dplyr::count(Name) %>%
  select(Name, Count = n) %>%
  arrange(-Count)
ggplot(marvelDcSuperP[1:25, ], aes(x = reorder(Name, Count), y = Count)) + 
  geom_bar(stat = "identity", aes(fill = Publisher)) +
  labs(x = "Character", y = "No. of superpowers", title = "Top 15 Marvel and DC Characters", subtitle = "With Highest No. of Superpowers") +
  coord_flip() +
  theme_bw() +
  scale_fill_manual(values=dcMarvelPalette)

Вы получите сюжет, подобный следующему, где вы можете увидеть, что тот, кто занимает первое место с персонажем с наибольшим количеством суперсил, является не чем иным, как Спектром из комиксов DC. Вы ожидали увидеть Аквамена внутри топа? Это немного удивило меня.

Большое спасибо за ваше любезное чтение. Как и в большинстве моих статей, я делюсь графиками, созданными с помощью plotly, в flexdashboard, который я собрал немного более эстетично: https://rpubs.com/cosmoduende / marvel-vs-dc

А здесь вы можете найти полный код и наборы данных: https://github.com/cosmoduende/r-marvel-vs-dc

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