大量データの散布図が素早く作成できるパッケージの紹介です。繰り返して大量データの散布図を作成する方に大変お勧めです。「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))
########
#大量データの散布図を素早くプロット:scattermoreplotコマンド
system.time(scattermoreplot(x = TestData$X_num_Data,
y = TestData$Y_num_Data,
col = viridis_pal(option = "viridis",
alpha = 0.4)(n)))
#ユーザ システム 経過
#6.80 0.37 7.17
###参考:plotコマンドの場合#####
system.time(plot(x = TestData$X_num_Data,
y = TestData$Y_num_Data,
col = viridis_pal(option = "viridis",
alpha = 0.4)(n),
pch = '.'))
#ユーザ システム 経過
#22.77 220.58 243.73
#ggplot2を利用して散布図を素早くプロット:geom_scattermostコマンド
#プロットデータの準備
PlotData <- cbind(TestData$X_num_Data, TestData$Y_num_Data)
ggplot() +
#geom_scattermostコマンド
geom_scattermost(
xy = PlotData,
color = viridis(100, alpha = 0.05)[1+99*PlotData[,2]],
pointsize = 1, pixels = c(700,700))
出力例
・ggplot2を利用して散布図を素早くプロット:geom_scattermostコマンド

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