晶格,仅当连接具有正斜率时才连接点。

7

是否有一种舒适的方法只连接具有正斜率的点?(否则该函数应完全像xyplot(...)那样进行处理)

library(lattice)

dat <- data.frame(x=1:10,y=sample(1:10))

xyplot(y ~ x, data=dat,
       panel = function(x, y,...) { 
         panel.xyplot(x, y, type="o",...)
       }
)

所以结果应该是像这样的图,但没有交叉的线: enter image description here 谢谢 Christof

虽然Roland的解决方案非常好,但我必须问一下,这是否是将信息传达给读者的最佳方式。您能解释一下为什么要显示任何行吗?标准规则是仅绘制实验数据的点。我建议,不要使用线条,而是识别每个y[j]>y[j-1]的实例,并以不同的颜色绘制这些点,以指示“入射”斜率。 - Carl Witthoft
1个回答

7
dat <- dat[order(dat[, "x"]),]
dat$group <- cumsum(c(1, diff(dat$y) < 0))


xyplot(y ~ x, data = dat, groups = group,
       panel = function(x, y,...) { 
         panel.xyplot(x, y, type = "o", col = trellis.par.get("plot.line")$col, ...)
       }
)

resulting plot


非常棒,非常感谢。我正在尝试找出是否可以在有额外分组因素的情况下使用类似的解决方案。 - ckluss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接