Rで解析:個別のドットプロット「DiscDots」パッケージ

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

出力されるプロットの正式な呼び名がdiscrete dot plotであるかは不明ですが、Yes,NOの結果や1ディスク当たりの値を定義するなどの工夫で新たなデータの表現に使えるかもしれません。

なお、「DiscDots」パッケージに収録されているコマンドでは、シンボルの色やサイズなどの細かい調整ができませんでしたのでパッケージを使用しないでプロットを作成するコマンドも紹介します。

パッケージバージョンは0.1。実行コマンドはR version 3.2.2で確認しています。

スポンサーリンク

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

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

#パッケージのインストール
install.packages("devtools")
devtools::install_github("joshua-james-f/DiscDots")

実行コマンド

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

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

###データ例の作成#####
n <- 12
Data <- sample(1:15, n)
NameData <- paste0("Data", Data)
########

#プロット:DiscDotsコマンド
DiscDots(Data, var_names = NameData)

パッケージを使用しないでプロットするコマンド

詳細はコメントを確認してください。データ形式はdata.frameです。

###&#12487;&#12540;&#12479;&#20363;#####
#&#24418;&#24335;&#12399;data.frame
n <- 12
TestData <- data.frame(Group = paste0("Data", Data), Judge = sample(1:15, n))
########

###DotPlot&#29992;&#12395;&#12487;&#12540;&#12479;&#12434;&#25972;&#24418;#####
#&#26368;&#22823;&#20516;&#12398;&#21462;&#24471;
MaxValue <- max(TestData[, 2])
#&#12487;&#12540;&#12479;&#26684;&#32013;&#22793;&#25968;&#12434;&#20316;&#25104;
DotData <- NULL
#&#12487;&#12540;&#12479;&#12398;&#20316;&#25104;
for(i in seq(nrow(TestData))){
  
  DotData <- rbind(DotData, data.frame(var = factor(seq(MaxValue)),
                                          variable = factor(rep(TestData[i, 1], MaxValue)),
                                          value = c(rep(2, TestData[i, 2]),
                                                    rep(1, MaxValue - TestData[i, 2]))))
  
}
########

#&#12471;&#12531;&#12508;&#12523;&#12398;&#33394;&#12434;&#35373;&#23450;
PointCols <- c("lightgray", "#a87963")
#&#12479;&#12452;&#12488;&#12523;&#12398;&#35373;&#23450;
title <- "TEST PLOT"
#&#12503;&#12525;&#12483;&#12488;
library("ggplot2")
#aes&#12398;&#35373;&#23450;&#12391;&#12503;&#12525;&#12483;&#12488;&#38918;&#12434;&#22793;&#12360;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;
ggplot(data = DotData, aes(x = reorder(variable, value),
                           y = as.numeric(var))) +
  #&#12471;&#12531;&#12508;&#12523;&#12398;&#12469;&#12452;&#12474;&#12399;&#12371;&#12371;&#12391;&#22793;&#26356;&#12391;&#12365;&#12414;&#12377;
  geom_point(aes(color = factor(value)), size = 10) +
  scale_color_manual(values = PointCols) +
  theme(axis.text.x = element_blank(), panel.grid.major.y = element_blank(), 
        axis.line = element_blank(), panel.grid.major.x = element_blank(), 
        panel.grid.minor.y = element_blank()) +
  theme(axis.line.y = element_blank(), axis.ticks.y = element_blank()) + 
  theme(axis.text.x = element_blank(), panel.grid.major.y = element_blank()) + 
  theme(legend.position = "none", axis.line = element_blank()) + 
  theme(axis.text.x = element_blank(), panel.grid.major.y = element_blank()) + 
  theme(legend.position = "none", axis.line = element_blank()) + 
  labs(list(title = title, x = "", y = "")) +
  #X&#12392;Y&#36600;&#12434;&#20837;&#12428;&#26367;&#12360;
  coord_flip()

出力例

・DiscDotsコマンド

DotPlots

・パッケージに依存しないで作成

ODotPlots

・パッケージに依存しないで作成2
ちょっとコマンドに工夫が必要です。

ODotPlots2

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

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