Rで解析:大量データの散布図を素早く作成「scattermore」パッケージ

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

大量データの散布図が素早く作成できるパッケージの紹介です。繰り返して大量データの散布図を作成する方に大変お勧めです。「ggplot2」パッケージを利用して作成するコマンドも収録されていますのでメモリ容量が許される大量データの散布図を作成してはいかがでしょうか。

実行コマンドでは「1e7」のデータ量で紹介しています。環境はCPU:AMD Ryzen 7 2700X Eight-Core Processor 3.70 GHz、メモリ:24.0 GB、Windows 11 Proです。

パッケージバージョンは0.8。実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

#パッケージの読み込み
library("scattermore")
#viridisパッケージがなければインストール
if(!require("viridis", quietly = TRUE)){
  install.packages("viridis");require("viridis")
}

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
n <- 1e7
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   X_num_Data = rnorm(n),
                   Y_num_Data = runif(n))
########

#&#22823;&#37327;&#12487;&#12540;&#12479;&#12398;&#25955;&#24067;&#22259;&#12434;&#32032;&#26089;&#12367;&#12503;&#12525;&#12483;&#12488;:scattermoreplot&#12467;&#12510;&#12531;&#12489;
system.time(scattermoreplot(x = TestData$X_num_Data,
                            y = TestData$Y_num_Data,
                            col = viridis_pal(option = "viridis",
                                              alpha = 0.4)(n)))
#&#12518;&#12540;&#12470;   &#12471;&#12473;&#12486;&#12512;   &#32076;&#36942;  
#6.80       0.37       7.17 

###&#21442;&#32771;:plot&#12467;&#12510;&#12531;&#12489;&#12398;&#22580;&#21512;#####
system.time(plot(x = TestData$X_num_Data,
                 y = TestData$Y_num_Data,
                 col = viridis_pal(option = "viridis",
                                   alpha = 0.4)(n),
                 pch = '.'))
#&#12518;&#12540;&#12470;   &#12471;&#12473;&#12486;&#12512;   &#32076;&#36942;  
#22.77     220.58     243.73  

#ggplot2&#12434;&#21033;&#29992;&#12375;&#12390;&#25955;&#24067;&#22259;&#12434;&#32032;&#26089;&#12367;&#12503;&#12525;&#12483;&#12488;:geom_scattermost&#12467;&#12510;&#12531;&#12489;
#&#12503;&#12525;&#12483;&#12488;&#12487;&#12540;&#12479;&#12398;&#28310;&#20633;
PlotData <- cbind(TestData$X_num_Data, TestData$Y_num_Data)
ggplot() +
  #geom_scattermost&#12467;&#12510;&#12531;&#12489;
  geom_scattermost(
    xy = PlotData,
    color = viridis(100, alpha = 0.05)[1+99*PlotData[,2]],
    pointsize = 1, pixels = c(700,700))

出力例

・ggplot2を利用して散布図を素早くプロット:geom_scattermostコマンド



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

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