【发布时间】:2015-11-01 18:14:28
【问题描述】:
我正在尝试使用由数值组成的数据随着时间的推移创建意大利面条图。这是一个大数据,所以不能在这里粘贴,但是在尝试时
matplot(x,y,type="l",lty=1,col="#00000020")
我怎样才能“平滑”线条并减少它们的重叠,就像在下面的情节中一样?如果可能的话,不要使用 ggplot2。
【问题讨论】:
我正在尝试使用由数值组成的数据随着时间的推移创建意大利面条图。这是一个大数据,所以不能在这里粘贴,但是在尝试时
matplot(x,y,type="l",lty=1,col="#00000020")
我怎样才能“平滑”线条并减少它们的重叠,就像在下面的情节中一样?如果可能的话,不要使用 ggplot2。
【问题讨论】:
只需以任意数量的方式平滑数据,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))
}
【讨论】:
nr <- 50 的方式更改您的代码,并以以下方式在mm 中引入NA:mm[,c(4,7,12,13)]<-NA; mm[c(3,5,8,9,10,13),]<-NA。然后情节看起来与我得到的非常相似。
mm[c(3,5,8,9,10,13),]<-NA 工作正常。另一个就像对所有NAs 进行观察一样,绘制这些没有意义,因为您没有数据,您不能只删除全部为 NA 的行/列吗?