سؤال

أنا أقسم مجموعة من المنحنيات، باستخدام الوجه في GGPLOT2. أرغب في تطبيق أكثر سلاسة على المؤامرات حيث توجد نقاط كافية للتسلية، ولكن ليس على المؤامرات ذات النقاط القليلة للغاية. على وجه الخصوص، أود إيقاف فشل المؤامرة عند عدم وجود أحد اللوحات فقط 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 )
هل كانت مفيدة؟

المحلول

جرب هذا

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 )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top