「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コマンド
少しでも、あなたの解析が楽になりますように!!