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

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