「ggplot2」パッケージで2種類のグラフを組み合わせた表現が可能なパッケージの紹介です。組み合わせ可能なグラフはPointPlot、ViolinPlot、DotPlot、BoxPlotdです。
実行コマンドでは各コマンドと組み合わせの例を紹介します。
パッケージバージョンは0.1.2。実行コマンドはwindows 11のR version 4.1.3で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("gghalves")
実行コマンド
詳細はコマンド、各パッケージのヘルプを確認してください。
#パッケージの読み込み library("gghalves") ###データ例の作成##### #tidyverseパッケージがなければインストール if(!require("tidyverse", quietly = TRUE)){ install.packages("tidyverse");require("tidyverse") } set.seed(1234) n <- 100 TestData <- tibble(Group = sample(paste0("Group", 1:4), n, replace = TRUE), ID = sample(LETTERS[1:5], n, replace = TRUE), Y_Data = sample(c(51:100), n, replace = TRUE)) #ggplotの基本描写エリアを設定 BaseGG <- ggplot(TestData, aes(x = Group, y = Y_Data, label = ID)) ######## #基準軸に対して指定領域にPointPlotを作成:geom_half_pointコマンド #領域の指定:sideオプション;左:"l",右:"r" #pointのバラツキを指定:range_scaleオプション;0でバラツキなし BaseGG + geom_half_point(side = "r", range_scale = 0, aes(color = Group)) #基準軸に対して指定領域にグループ分けのPointPlotを作成:geom_half_point_panelコマンド #領域の指定:sideオプション;左:"l",右:"r" #pointのバラツキを指定:range_scaleオプション;0でバラツキなし BaseGG + geom_half_point_panel(side = "l", range_scale = 0.75, aes(color = ID)) #基準軸に対して指定領域にViolinPlotを作成:geom_half_violinコマンド #領域の指定:sideオプション;左:"l",右:"r" BaseGG + geom_half_violin(side = "r", aes(fill = Group)) #基準軸に対して指定領域にDotPlotを作成:geom_half_dotplotコマンド #集計法の指定:methodオプション:"dotdensity","histodot" #領域の指定:stackdirオプション;左:"down",右:"up" BaseGG + geom_half_dotplot(method = "dotdensity", stackdir = "down", aes(fill = Group)) #基準軸に対して指定領域にBoxPlotを作成:geom_half_boxplotコマンド #領域の指定:sideオプション;左:"l",右:"r" BaseGG + geom_half_boxplot(side = "r", aes(fill = Group)) ###組み合わせ例##### ggplot() + geom_half_boxplot(data = TestData %>% filter(Group == "Group1"), aes(x = Group, y = Y_Data, fill = Group)) + geom_half_violin(data = TestData %>% filter(Group == "Group1"), aes(x = Group, y = Y_Data, fill = Group), side = "r") + geom_half_boxplot(data = TestData %>% filter(Group == "Group2"), aes(x = Group, y = Y_Data, fill = Group)) + geom_half_point_panel(data = TestData %>% filter(Group == "Group2"), aes(x = Group, y = Y_Data, color = ID), side = "r") + geom_half_dotplot(data = TestData %>% filter(Group == "Group3"), aes(x = Group, y = Y_Data, fill = Group), method = "dotdensity", stackdir = "down") + geom_half_boxplot(data = TestData %>% filter(Group == "Group3"), aes(x = Group, y = Y_Data, fill = Group), side = "r") + geom_half_point(data = TestData %>% filter(Group == "Group4"), aes(x = Group, y = Y_Data, colour = Group), side = "l", range_scale = 0.75, size = 2.5) + geom_half_violin(data = TestData %>% filter(Group == "Group4"), aes(x = Group, y = Y_Data, fill = Group), side = "r") + scale_fill_manual(values = c("Group1" = "#4b61ba", "Group2" = "#e1e6ea", "Group3" = "#756c6d", "Group4" = "#ad8a80")) + scale_color_manual(values = c("Group1" = "#4b61ba", "Group2" = "#e1e6ea", "Group3" = "#756c6d", "Group4" = "#ad8a80", "A" = "#4b61ba", "B" = "green", "C" = "yellow", "D" = "#ad8a80", "E" = "red")) + theme(legend.position = "none", panel.border = element_rect(linetype = "solid", fill = NA), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank(), panel.background = element_rect(fill = NA))
出力例
・geom_half_pointコマンド
・geom_half_point_panelコマンド
・geom_half_violinコマンド
・geom_half_dotplotコマンド
・geom_half_boxplotコマンド
・組み合わせ例
少しでも、あなたの解析が楽になりますように!!