我正在尝试使用从0到4的数字组成的数据创建意大利面条图,这些数据是在15个不同的时间点获得的。它是一个大数据,所以不能粘贴在这里,但在尝试
时matplot(x,y,type="l",lty=1,col="#00000020")
我怎样才能顺利"线条并使它们重叠较少,就像在较低的情节中一样?如果可能的话,不使用ggplot2。
答案 0 :(得分:2)
只需以多种方式平滑数据some examples
nr <- 200
mm <- t(matrix(sample(0:4, nr * 15, replace = TRUE), nr))
set.seed(1)
mm[sample(length(mm), nr * 15 / 20)] <- NA
x <- 1:15
par(mfrow = c(1,2))
matplot(mm, type = 'l', lty = 1, xlim = c(0,15), ylim = c(-5,10),
col = adjustcolor('black', alpha.f = .1))
plot('mm', xlim = c(0,15), ylim = c(-5,10), panel.last = grid(), bty = 'l')
for (ii in 1:ncol(mm)) {
dd <- data.frame(y = mm[, ii], x = x)
lo <- loess(y ~ x, data = dd, na.action = 'na.omit')
# lo <- loess(mm[, ii] ~ x)
xl <- seq(min(x), max(x), (max(x) - min(x)) / 1000)
lines(xl, predict(lo, xl), col = adjustcolor('black', alpha.f = .1))
}