0

ggplot2 のファセットを使用して、曲線のグループをプロットしています。平滑化するのに十分なポイントがあるプロットにスムーザーを適用したいのですが、ポイントが非常に少ないプロットには適用したくありません。特に、パネルの 1 つに 1 つまたは 2 つのポイントしかない場合にプロットが失敗するのを止めたいと思います。

例:

a <- data.frame( x=1:100, y=sin(seq(0.1,10,0.1) )) 
b <- data.frame( x=1:5, y=sin(seq(0.1,0.2,0.1) )) 
l <- melt(list(a=a,b=b),id.vars="x") 
qplot( x, value, data=l ) + geom_smooth() + facet_wrap( ~ L1 )
4

1 に答える 1

4

これを試して

library(ggplot2)
a <- data.frame( x=1:100, y=sin(seq(0.1,10,0.1) )) 
b <- data.frame( x=1:2, y=sin(seq(0.1,0.2, length = 2) )) 
l <- melt(list(a=a,b=b),id.vars="x") 

more_than <- function(n) {
  function(df)  {
    if (nrow(df) > n) {
      df
    }
  }
}

lbig <- ddply(l, "L1", more_than(5))

qplot( x, value, data=l ) + geom_smooth() + facet_wrap( ~ L1 )
qplot( x, value, data=l ) + geom_smooth(data = lbig) + facet_wrap( ~ L1 )
于 2009-11-07T13:34:04.697 に答える