見出し画像

ggplot2: 横向きの棒グラフを作成

前回までに作成した棒グラフは、通常の、下から上に棒が伸びた棒グラフでした。今回は、その縦と横を入れ替えて、左から右に伸びる横向きの棒グラフを紹介します。

横向きの棒グラフは aes()の指定を入れ替える

実は、横向きの棒グラフを作成するのは簡単です。最初の ggplot() の引数に aes() を指定しますが、この中で、x 軸の y 軸に使用するデータを指定していました。この指定を入れ替えるだけです。

例に用いるデータは、前回までと同じ top10 のデータです。

> top10
# A tibble: 10 × 4
   weapon         total percentage buki
   <chr>          <dbl>      <dbl> <chr>
 1 sharp          35209       7.68 シャープマーカー
 2 wakaba         30992       6.76 わかばシューター
 3 lact450        25510       5.56 LACT-450
 4 sshooter       21767       4.75 スプラシューター
 5 promodeler_mg  20882       4.55 プロモデラーMG
 6 52gal          20309       4.43 .52ガロン
 7 bold           17598       3.84 ボールドマーカー
 8 furo           16551       3.61 オーバーフロッシャー
 9 nzap85         16230       3.54 N-ZAP85
10 variableroller 15452       3.37 ヴァリアブルローラー

何も宣言しなければ、aes() の最初の引数は x 軸、その次の引数は y 軸のデータを指定したことを意味します。これまでは、 aes(buki, percentage) と指定していました。そのため、横 = x 軸に buki が使用されていたわけです。

今回は、横に percentage の棒が伸び、縦に buki が並ぶようにしたいので、 aes(percentage, buki) とすればよいです。コードは次のようになります。

plot_data <- top10 %>%
  mutate("buki" = fct_reorder(buki, percentage))

g <- ggplot(plot_data, aes(percentage, buki)) + geom_col()
g + theme(text = element_text(family = "HiraKakuProN-W3"))

割合 (=percentage) の高い順に並ぶように、fct_reorder() で buki をファクターに変換しています(詳細)。また、今回、 y 軸の目盛りとなるテキストは横書きになるので、回転させていません。下記のような結果になります。

横向きの棒グラフ

棒グラフの項目が多い時や、目盛りのテキストが長い時、棒グラフは横向きにしたほうが適しているかもしれません。上位10個のブキに限らず、55個のブキすべての使用率を表した棒グラフもスムーズに表示できます。

横向きの棒グラフ:Drizzle 2022 シーズンのナワバリにおけるブキ使用率。stat.ink のデータより。

シャープマーカーのカニタンクと、ラクトがマルチミサイルを撃ちまくっていたころが懐かしいですね。こうして見ると、ルールがナワバリにも関わらず、塗りブキでない「リッター4k」 が、パブロと同じくらい使われているのが分かります。練習のため使用する人が多いのでしょうか?ほかのシーズンの結果も作成して、比較してみたいと思います。



この記事が気に入ったらサポートをしてみませんか?