r - 点阵图 - 通过 y 值的平均值添加线

标签 r lattice

我想用分组的点和线打印 lattice::xyplot,但我有多个 y 值用于每个组中的许多单独的 x 值。我想要打印一条分段线,以便对于每个 x 值,它通过每个组中相关 y 值的平均值。

下面是一个例子:

使用这些数据:

set.seed(1)
d <- data.frame(x=sample(6, 20, replace=TRUE), y=rnorm(20), g=factor(sample(2, 20, replace=TRUE)))
# Shift one group
d$y[d$g==2] = d$y[d$g==2] + 5

我已经移动了一组,因此线条在视觉上更具吸引力。

散点图如下所示:
xyplot(y ~ x, data=d, groups=g)

enter image description here

只是添加行是一个真正的困惑:
xyplot(y ~ x, data=d, groups=g, type=c('p','l'))

enter image description here

如果对 x 值进行排序会好一点,但仍然不是我想要的:
xyplot(y ~ x, data=d[order(d$x),], groups=g, type=c('p','l'))

enter image description here

最佳答案

我会使用 panel.superpose 然后在组面板函数中进行聚合。例如

xyplot(y ~ x, data=d, groups=g, panel=function(...) {
    panel.xyplot(...);
    panel.superpose(..., panel.groups=function(x, y, col.line, ...) {
        dd <- aggregate(y~x, data.frame(x,y), mean)
        panel.xyplot(x=dd$x, y=dd$y, col=col.line, type="l")
    })
})

这导致

enter image description here

关于r - 点阵图 - 通过 y 值的平均值添加线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690034/

相关文章:

r - 使用 doubleYScale 图更改 y 轴文本大小

r - R 中的点图与点阵 : display of vertical axis and error bars

r - 安装特定版本的bioconductor包

r - R中的计算精度级别

r - 谁能帮我写一个 R 数据框作为 SAS 数据集?

r - ggplot2 三角函数图看起来呈锯齿状

r - 如何生成一个因素以另一个因素为条件的条形图?

r - 我可以在R的ggplot2中使用晶格中的带状疱疹吗

r - 如何在R中绘制3d函数?

按行名删除一堆行 - 如何在 R 中初始化空字符串?