よく見ると、リンクしているグラフは、線ではなく多くの、多くの、多くの点で構成されていることがわかります。
ggpointdensity
パッケージには、同様の可視化を行います。非常に多くのデータポイントがあるため、パフォーマンスにかなりの問題があることに注意してください。私は開発者バージョンを使用していmethod
ます。これには、さまざまな平滑化推定量を使用できるようにする引数が含まれており、明らかに大きな数の処理に役立つからです。クランバージョンもあります。
adjust
引数でスムージングを調整できます。
コードのx間隔の密度を上げて、より線のように見せました。ただし、プロットの「ライン」の数をわずかに減らしました。
library(tidyverse)
#devtools::install_github("LKremer/ggpointdensity")
library(ggpointdensity)
set.seed(1)
gen.dat <- function(key) {
c <- sample(seq(0.1,1, by = 0.1), 1)
time <- seq(c*pi,length.out=500)
val <- sin(time)
time = seq(0.02,100,0.1)
data.frame(time,val,key)
}
dat <- lapply(seq(1, 1000), gen.dat) %>% bind_rows()
ggplot(dat, aes(time, val)) +
geom_pointdensity(size = 0.1, adjust = 10)
#> geom_pointdensity using method='kde2d' due to large number of points (>20k)
2020-03-19にreprexパッケージ(v0.3.0)によって作成されました
update 興味深いサンプルデータを作成して
くれたユーザーRobert Gertenbachに感謝します。ここでは、このデータでのggpointdensityの推奨される使用法を示します。
library(tidyverse)
library(ggpointdensity)
gen.dat <- function(key) {
has_offset <- runif(1) > 0.5
time <- seq(1, 1000, length.out = 1000)
val <- sin(time / 100 + rnorm(1, sd = 0.2) + (has_offset * 1.5)) *
rgamma(1, 20, 20)
data.frame(time,val,key)
}
dat <- lapply(seq(1,1000), gen.dat) %>% bind_rows()
ggplot(dat, aes(time, val, group=key)) +stat_pointdensity(geom = "line", size = 0.05, adjust = 10) + scale_color_gradientn(colors = c("blue", "yellow", "red"))
2020-03-24にreprexパッケージ(v0.3.0)によって作成されました