Rで解析:表情シンボルでggplot2!「ggChernoff」パッケージ

Rの解析に役に立つ記事

「ggplot2」パッケージを利用した散布図で、表情シンボルによりデータの特徴を表現するパッケージの紹介です。口、眉、鼻、目の表情をデータで表現することが可能です。

1973年にHerman Chernoffにより考案された「チャーノフの顔」をインスパイアしたパッケージです。

The Use of Faces to Represent Points in k-Dimensional Space Graphically
Journal of the American Statistical Association
Volume 68, 1973 – Issue 342
https://www.tandfonline.com/doi/abs/10.1080/01621459.1973.10482434?cookieSet=1

意外と需要があるパッケージではないでしょうか。

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

スポンサーリンク
スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

set.seed(1234)
n <- 50
TestData <- tibble(Group = sample(paste0("Group ", 1:3), n, replace = TRUE),
                   SubGroup = sample(paste0("SubGroup ", 1:3), n, replace = TRUE),
                   Data_X = 1:n,
                   Data_Y = rnorm(n))
#プロット例の作成
pointPlot <- ggplot(TestData, aes(x = Data_X, y = Data_Y, fill = Group)) +
  scale_fill_manual(values = c("#deb7a0", "#4b61ba", "#a87963"),
                    guide = "none")
########

#プロットシンボルに顔マークを使用する:geom_chernoffコマンド
#口表情を適用:smiileオプション
#眉表情を適用:browオプション
#鼻表情を適用:noseオプション
#目表情を適用:eyesオプション
pointPlot +
  geom_chernoff(aes(smile = Data_X, brow = Data_Y,
                    nose = Data_Y, eyes = Data_X),
                size = 10)

#口表情の適用を調整:scale_smile_continuousコマンド
#口表情の調整:rangeオプション
#口表情の中間点:midpointオプション;min,mean,max
pointPlot + 
  geom_chernoff(aes(smile = Data_X, brow = Data_Y,
                    nose = Data_Y, eyes = Data_X),
                size = 10) +
  scale_smile_continuous(range = c(0, 3),
                         midpoint = mean)

#目表情の適用を調整:scale_eyes_continuousコマンド
#目表情の調整:rangeオプション
#目表情の中間点:midpointオプション;min,mean,max
pointPlot + 
  geom_chernoff(aes(smile = Data_X, brow = Data_Y,
                    nose = Data_Y, eyes = Data_X),
                size = 10) +
  scale_eyes_continuous(range = c(1, -1),
                        midpoint = mean)

#眉表情の適用を調整:scale_brow_continuousコマンド
#眉表情の調整:rangeオプション
#眉表情の中間点:midpointオプション;min,mean,max
pointPlot + 
  geom_chernoff(aes(smile = Data_X, brow = Data_Y,
                    nose = Data_Y, eyes = Data_X),
                size = 10) +
  scale_brow_continuous(range = c(0, 3),
                        midpoint = mean)

出力例

・geom_chernoffコマンド

・scale_smile_continuousコマンド

・scale_eyes_continuousコマンド

・scale_brow_continuousコマンド


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

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