Pro Platte Glättung in ggplot2
Frage
Ich bin Plotten eine Gruppe von Kurven, mit Facette in ggplot2. Ich möchte ein glatter Plots angewandt haben, wo es genügend Punkte zu glätten, aber nicht auf Flächen mit sehr wenigen Punkten. Insbesondere würde Ich mag die Handlung stoppen versagt, wenn eine der Platten nur 1 oder 2 Punkte.
Beispiel:
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 )
Lösung
Versuchen Sie, diese
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 )
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow