データの視覚化:スプラトゥーン3で人気のブキは?
基礎的な話が続いてしまっても、あまり面白くないので、閑話休題として、スプラトゥーン3で使われているブキを調べた結果をパイチャートで視覚化してみます。***一部の人だけの集計結果なので、全体を反映したものではありません。ご注意ください。***
使用データ
データは、 stat.ink に投稿された試合の結果をありがたく使わせていただきました。誰でもダウンロードできるように公開されています。データの形式は、CSVファイルです。ダウンロードした時点の1月21日までのデータです。データのサイズは、zipを展開した状態で、450MBほどです。
なお、各日にち毎にファイルが分かれているため、cat で連結して1つのファイルにしてから読み込みました。また、コードを書きやすいように、ヘッダーの「ハイフン(-)」を「アンダースコア(_)」に変更してます。そうしないと、列名を毎回「バッククォート(`)」で囲む必要があります。
csv ファイルなので、read_csv() 関数で読み込みます。(read_tsvではなく。)
library(tidyverse)
battle_results <- read_csv("battle_results20220926_20230121.csv")
登録されている試合数は、ナワバリ、バンカラ、フェス、Xマッチを合計して447,455試合でした。このうち、最近の Chill Season のものだけを使いました。
これも以前紹介したfilter()関数で指定するだけです。
chill_season_results <- battle_results %>%
filter(season == "Chill Season 2022")
このうち、投稿者のデータが A1 らしいので、それを除外します。同じ人が何度も登場することになるためです。データとしては、「投稿者が試合で出会った他のプレイヤーたちの使用ブキ」を集計することになります。
これも filter()関数でできます。(全員のブキ = *_weapon を選択してから、A1_weapon を除外)
all_weapon <- chill_season_results %>%
select(ends_with("_weapon"))
weapon_no_a1 <- all_weapon %>% select(-A1_weapon)
全部で、224,636 × 7 = 1,572,452 人分のブキです。
集計結果を視覚化(パイチャート)
先に結果を載せてしまうと、下記の図です。
予想どおりというか、シャープマーカーが一番でしたね。のべ157万人中、12万人近くもいます。意外と、もみじ、わかばが多いです。また、フェス100ケツに多いスクリューが意外と少ないように感じます(上級者に多いだけ?)。なお、最近のアップデート直後なので、まだ、その影響は見えていないようです。(また、ZAPが増えてくると思います。)ルール毎に集計すると、また違うと思われます。
> pie_data
# A tibble: 68 × 3
weapon total buki
<chr> <dbl> <fct>
1 sharp 117426 シャープマーカー
2 momiji 101123 もみじシューター
3 sshooter_collabo 77007 スプラシューターコラボ
4 wakaba 66182 わかばシューター
5 liter4k 60678 リッター4K
6 sshooter 57281 スプラシューター
7 52gal 55852 .52ガロン
8 promodeler_rg 55503 プロモデラーRG
9 prime_collabo 47810 プライムシューターコラボ
10 screwslosher 46237 スクリュースロッシャー
自分の愛用しているL3リールガンは、こんなに低い使用率だったとは、驚きました。数にして、のべ157万人中の3千人でした。(確かに、数えるくらいしか、他に使っている人に遭遇してません。個人的には使いやすいと思うのですが。。。)
> tail(pie_data)
# A tibble: 6 × 3
weapon total buki
<chr> <dbl> <fct>
1 soytuber 3764 ソイチューバー
2 l3reelgun 3004 L3リールガン
3 parashelter 2922 パラシェルター
4 rapid_elite 2772 Rブラスターエリート
5 splatspinner 2740 スプラスピナー
6 h3reelgun 2733 H3リールガン
このようにデータは、集計し、視覚化することで、いろいろな気付きが見えてきます。R言語では、数値計算や統計処理ではなく、視覚化の機能が充実していることが大きな利点です。
ちなみに、パイチャート作成部分のコードは下記のようになります。詳細な解説はのちのち行なっていきます。
weapon_data <- weapon_no_a1 %>%
gather(ends_with("_weapon"), key = "player", value = "weapon") %>%
mutate("num" = 1) %>% group_by(weapon) %>% summarize("total" = sum(num))
pie_data <- weapon_data %>% arrange(desc(total)) %>%
inner_join(weapon_list) %>%
mutate(buki = fct_reorder(buki, total, .desc = TRUE))
pie <- ggplot(pie_data, aes(x = "", y = total, fill = buki)) +
geom_bar(stat = "identity", size = 0.2, width = 1, color = "white") +
coord_polar("y", start = 0, direction = -1)
pie + labs(title = "Chill Season 2022-20230121") +
theme_void() + theme(text = element_text(family = "HiraKakuProN-W3"))
ggsave("weapon_total_chill2022_20230121.png", bg = "white")
ところで、3から新しく始めた人たちは、大アサリ持ったまま味方にジャンプできるの知っているかな?お願いだから、カモンしたら飛んできてくれー。