Rで解析:パス上にテキストを配置「geomtextpath」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

「ggplot2」パッケージでプロットしたパスにテキストを簡単に配置できるパッケージの紹介です。「ggplot2」パッケージと合わせて利用します。なお、RStudioで利用する際には日本語テキストの配置が空白で表示されてしまいます。「ragg」パッケージを利用することで解決することが可能です。

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

スポンサーリンク

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

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

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

RStudioでの文字化け防止

RStudio 2021.09.1+372で確認しています。下記、コマンドを実行後、RStudioのメニューを「Tools > Global Options > General > Graphics」と移動しBackendを「AGG」に指定してください。その後、RStudioを再実行すると準備完了です。

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

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。日本語をプロットする時は「ragg」パッケージの導入と設定が必要。また、familyオプションへ日本語フォント名を設定します。

#パッケージの読み込み
library("geomtextpath")
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

###データ例の作成#####
set.seed(1234)
n <- 30
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   X_Data = sample(c(1:50), n, replace = TRUE),
                   Sin_Data = sin(1:n) * 30:1,
                   Cos_Data = cos(1:n) * 30:1)

#テキストデータ
#Markdown,HTML,CSSで
#色,フォントファミリー,フォントサイズ,太字,斜体,下付き文字,上付き文字が可能
TextData <- "<b style='color:black'>からだにいいもの</b>_KARADANI IIMONO"
########

#パス上にテキストを配置:geom_textpathコマンド
###日本語をプロットする時はraggパッケージの導入と設定が必要###
###familyオプションへ日本語フォント名を設定する###
#テキストデータ:labelオプション;ggplotコマンド内でも設定可能
#パス上でのプロット位置:hjustオプション;0-1の範囲
#パスへのテキストの適応調整:text_smoothingオプション;0-100の範囲
#短すぎるパスへの配置可否:remove_longオプション;TRUE,FALSE
#Markdown,HTML,CSSの適応可否:richオプション;TRUE,FALSE
#文字サイズ:sizeオプション
#文字,線の色:textcolour,linecolourオプション
ggplot(TestData, aes(x = Sin_Data, y = Cos_Data)) +
  geom_textpath(label = TextData,
                hjust = 0.5,
                text_smoothing = 10,
                remove_long = FALSE,
                rich = TRUE,
                size  = 6,
                textcolour = "#E41A1C",
                linecolour = "#377eb8",
                family = "Yu Gothic") +
    labs(subtitle = "geom_textpathコマンド") 


#パス上にテキストラベルを配置:geom_labelpathコマンド
#オプションはgeom_textpathコマンドを参照
ggplot(TestData, aes(x = Sin_Data, y = Cos_Data)) +
  geom_labelpath(label = TextData,
                 hjust = 0.5,
                 size  = 6,
                 rich = FALSE,
                 textcolour = "#E41A1C",
                 boxcolour = "#377eb8",
                 fill = "yellow",
                 family = "Yu Gothic") +
  labs(subtitle = "geom_labelpathコマンド") 

  
#グラフにテキストを配置:geom_textdensityコマンド
#要素のデータを基準に配置位置を指定:hjustオプション;
#"xmin","xmid","xmax","ymin","ymid","ymax","auto"が設定可能
ggplot(TestData, aes(x = X_Data,
                     colour = Group,
                     label = Group)) +
  geom_textdensity(hjust = "ymax",
                   vjust = -0.3, 
                   size = 5) +
  labs(subtitle = "geom_textdensityコマンド")

出力例

・geom_textpathコマンド

・geom_labelpathコマンド:rich = FALSE

・geom_textdensityコマンド


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

タイトルとURLをコピーしました