Rで解析:「ggplot2」パッケージだけで2軸グラフの作成


投稿日: Rの解析に役に立つ記事

「ggplot2」パッケージだけで2軸グラフを作成するコマンド例です。「scale_y_continuous」コマンドと「sec.axis」コマンドを利用しています。

「tidyverse」パッケージバージョンは1.3.2。windows11のR version 4.2.2で確認しています。

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("tidyverse")

実行コマンドの紹介

詳細はコマンド、パッケージのヘルプを確認してください。

#ggplot2を含むtidyverseパッケージの読み込み
library("tidyverse")

###データ例の作成#####
set.seed(1234)
n <- 50
TestData <- tibble(Group = sample(paste0("Group ", 1:5), n, replace = TRUE),
                   Data = 1:n,
                   Data1 = 1:n,
                   Data2 = rnorm(n))
########

#第2軸調整変数
SecondScale <- max(TestData$Data1)/max(TestData$Data2)

ggplot(TestData, aes(x = Data)) +
  #Data1が第1軸
  stat_summary(aes(y = Data1, fill = Group), fun = "mean",
               geom = "bar", position = "stack") +
  
  #Data2が第2軸
  geom_line(aes(y = Data2*SecondScale), col = "blue", size = 4) +
  
  #2軸の調整
  scale_y_continuous(name = "Data1 = sample(0:26, n, replace = TRUE)",
                     sec.axis = sec_axis(trans = ~./SecondScale,
                                         breaks = seq(-10, 10, by = 1),
                                         name = "Data2 = rnorm(n)")) +
  #テーマで軸を調整
  theme(
    #第2軸回り
    axis.title.y.right = element_text(color = "red", #色の指定
                                      angle = -90) #90で第1軸と同じ向き
    )

出力例


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク