Rで解析:プロットの一部をハイライト表示するのに便利です「gghighlight」パッケージ


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

指定した範囲をハイライト表示した図を作成するのに便利なパッケージの紹介です。「ggplot2」パッケージのコマンドが利用可能です。また、本パッケージを利用しないでハイライト表示した散布図を作成するコマンド例を紹介します。

パッケージバージョンは0.3.2。実行コマンドはwindows 11のR version 4.1.2で確認しています。

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

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

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

実行コマンド

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

#パッケージの読み込み
library("gghighlight")

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
#データ作成
set.seed(1234)
n <- 300
PointData <- tibble(ID = rep(1:5, len = n),
                    Group = sample(c("A", "B", "C"),
                                   n, replace = TRUE),
                    Time_A = abs(rnorm(n)),
                    Time_B = log2(abs(rnorm(n))))
########

#データのハイライトを設定:gghighlightコマンド
#プロットラベルの付与:label_keyオプション
ggplot(PointData, aes(x = Time_A, y = Time_B, colour = Group)) +
  geom_point() +
  gghighlight(Time_A > .8 & Time_B < -4.5) +
  scale_colour_manual(values = c("#a0b981", "#47547c", "#9f8288")) +
  theme_bw()

###参考:gghighlightパッケージを利用しないで散布図作成#####
MendoiPointData <- PointData %>%
  #if_elseとcase_whenコマンドがポイントです
  #case_whenは条件式 ~ 結果で指定します
  mutate(col = if_else(Time_A > .8 & Time_B < -4.5,
                       case_when(Group == "A" ~ "#a0b981",
                                 Group == "B" ~ "#47547c",
                                 Group == "C" ~ "#9f8288"), "gray")) %>%
  mutate(Label = if_else(Time_A > .8 & Time_B < -4.5, as.character(Group), ""))

#ラベル付与に便利な「ggrepel」パッケージ
#https://www.karada-good.net/analyticsr/r-377
#ggrepelパッケージがなければインストール
if(!require("ggrepel", quietly = TRUE)){
  install.packages("ggrepel");require("ggrepel")
}

#プロット,scale_colour_identityコマンドがポイント
MendoiPlot <- ggplot(MendoiPointData, aes(x = Time_A, y = Time_B,
                                             label = Label, col = col))
MendoiPlot +
  geom_point() +
  geom_label_repel() +
  scale_colour_identity(guide = "none") +
  theme_bw()
########

出力例

・データのハイライトを設定:gghighlightコマンド

・参考:パッケージを利用しないで散布図作成


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

スポンサードリンク

スポンサードリンク