「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コマンド

・組み合わせ例

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