Кунг-фу панда: социальная сеть персонажей

Домашнее задание № 16

Автор

Елизавета Копылова

Дата публикации

6.03.2025

Аннотация
Граф персонажей по мультфильму “Кунг-фу панда” (первая часть). Источник данных - networkdata.

Предобработка данных

Установим все необходимые для работы библиотеки:

library(networkdata)
library(igraph)
library(tidyverse)
library(ggraph)
data(movie_410)

Отметим, какие из персонажей активно участвуют в основном противостоянии (и являются ли они положительными или отрицательными), а какие персонажи являются второстепенными

class_tbl <- tibble(name = V(movie_410)$name) |> 
  mutate(class = case_when(
    str_detect(name, "^(TAI LUNG|GANG BOSS)$") ~ "evil",
    str_detect(name, "^(PO|MANTIS|TIGRESS|SHIFU|OOGWAY|FURIOUS FIVE|CRANE|MONKEY|VIPER)$") ~ "good",
    .default = "neutral"))

class_tbl
# A tibble: 21 × 2
   name         class  
   <chr>        <chr>  
 1 ANNOUNCER    neutral
 2 CHEERS       neutral
 3 COMMANDER    neutral
 4 CRANE        good   
 5 FURIOUS FIVE good   
 6 GANG BOSS    evil   
 7 JR SHAW      neutral
 8 KG SHAW      neutral
 9 MANTIS       good   
10 MONKEY       good   
# ℹ 11 more rows
V(movie_410)$class <- class_tbl$class

Строим граф

ggraph(movie_410, layout = "dh") +
  geom_edge_link(aes(edge_width = weight),
                 alpha = 0.2) + 
  geom_node_label(aes(label = name, fill = class),
                  color = "white",
                  size = 2.5) +
  theme_graph(base_family = "sans")

ggraph

Можем заметить различные особенности, отражающие сюжет мультфильма: мастер Угвей из всех кунг-фу мастеров общается только с Шифу, Тигрицей и По, ребра между ним и Тай Лунгом нет (что соответствует идее, что он никогда его не замечал)

Также можно увидеть, что Тигрица точно один из основных персонажей, а По много общается с отцом (даже больше, чем с некоторыми “сокомандниками”, хотя он проводит с ними бОльшую часть мультфильма)