2

ggplotを使用するグラフの生成速度を上げる方法はありますfacet_gridか?

facet_grid物事が大幅に遅くなるようです。を利用する余分な機能をプロットに追加すると、さらに悪化しますfacet_grid

例:

ダミー データを作成します。

library(ggplot2)
library(rbenchmark)

df <- data.frame(cbind(rate=runif(60,0,1),period=(rep(c(1:6),10)),colour=sample(c("firebrick3","seagreen3","cadetblue"),60,replace=TRUE)
,gridvar=rep(paste0("class",1:10),each=6)))

df$rate <- as.numeric(as.character(df$rate))
df$upper <- df$rate +1
df$lower <-  df$rate -1

facet_grid を使用:

benchmark(replications=10,
 path={print(ggplot(df) + geom_path(aes(y=rate,x=period,group=1),size=1)  + facet_grid( gridvar ~ .))},

pathError={print(ggplot(df) + geom_path(aes(y=rate,x=period,group=1),size=1) + geom_errorbar( aes(ymax =upper, ymin=lower,x=period), width=0.25)  + facet_grid( gridvar ~ .))},

           pathErrorPoint={print(ggplot(df) + geom_path(aes(y=rate,x=period,group=1),size=1) + geom_errorbar( aes(ymax =upper, ymin=lower,x=period), width=0.25) + geom_point(aes(y=rate,x=period,colour=colour),size=5) + facet_grid( gridvar ~ .))}
)


#            test replications elapsed relative user.self sys.self user.child sys.child
#1           path           10   13.38    1.000     13.23     0.14         NA        NA
#2      pathError           10   22.01    1.040     21.70     0.16         NA        NA
#3 pathErrorPoint           10   38.43    2.874     37.60     0.27     NA        NA

facet_grid なし:

 benchmark(replications=10,
           path={print(ggplot(df) + geom_path(aes(y=rate,x=period,group=1),size=1)  )},

           pathError={print(ggplot(df) + geom_path(aes(y=rate,x=period,group=1),size=1) + geom_errorbar( aes(ymax =upper, ymin=lower,x=period), width=0.25)  )},

           pathErrorPoint={print(ggplot(df) + geom_path(aes(y=rate,x=period,group=1),size=1) + geom_errorbar( aes(ymax =upper, ymin=lower,x=period), width=0.25) + geom_point(aes(y=rate,x=period,colour=colour),size=5) )}
 )


#            test replications elapsed relative user.self sys.self user.child sys.child
#1           path           10    2.99    1.000      2.85     0.03         NA        NA
#2      pathError           10    4.62    1.545      4.56     0.06         NA        NA
#3 pathErrorPoint           10    6.18    2.067      6.02     0.12         NA        NA

facet_gridプロットの制作時間は、1 秒からほぼ 4 秒になる追加機能ごとに平均 1 ~ 2 秒長くなります。なしfacet_gridでも同様に増加が見られますが、最も多くの機能を含むプロットの生成には 1 秒もかかりません。それよりも時間がかかるのは正常ですfacet_gridが、小さなデータセットでのこのようなプロットの 3 ~ 4 秒は、予想よりも長くなります。助言がありますか?

4

0 に答える 0