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です。

###データ例#####
#形式はdata.frame
n <- 12
TestData <- data.frame(Group = paste0("Data", Data), Judge = sample(1:15, n))
########

###DotPlot用にデータを整形#####
#最大値の取得
MaxValue <- max(TestData[, 2])
#データ格納変数を作成
DotData <- NULL
#データの作成
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]))))
  
}
########

#シンボルの色を設定
PointCols <- c("lightgray", "#a87963")
#タイトルの設定
title <- "TEST PLOT"
#プロット
library("ggplot2")
#aesの設定でプロット順を変えることができます
ggplot(data = DotData, aes(x = reorder(variable, value),
                           y = as.numeric(var))) +
  #シンボルのサイズはここで変更できます
  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とY軸を入れ替え
  coord_flip()

出力例

・DiscDotsコマンド

DotPlots

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

ODotPlots

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

ODotPlots2

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

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