0

希望 facet_wrap 对每个图都有不同的参数。下面的例子:

x = c(43,22,53,21,13,53,23,12,32)
y = c(42,65,23,45,12,22,54,32,12)

df = cbind(x,y)

df = as.data.frame(df)  

meany = mean(y)

p = ggplot(df, aes(x=x,y=y, colour=(y > meany))) + 
      geom_point() +
      geom_hline(yintercept = meany)
p

效果很好,在 y 的平均值处有一条线,并且该线上方和下方的点颜色不同。

我有一个更大的数据框,我想对每个因子级别执行此操作并使用 facet_wrap 显示所有图。我不确定如何让 ggplot 中的颜色和 yintercept 更改为 facet_wrap 中的每个图形。

此外,我希望情节有更多的层,即每个情节将比较不同模型的 MSE。

谢谢您的帮助。

4

1 回答 1

2

像这样的东西?

DB <- data.frame(F = factor(rep(LETTERS[1:3], each = 20)),
                 x = rnorm(60, 40, 5), 
                 y = rnorm(60, 40, 5))

library(plyr)
library(ggplot2)

DB <- ddply(DB, "F", mutate, ind = y > mean(y))
mns <- ddply(DB, "F", summarise, meany = mean(y))

ggplot(DB, aes(x = x, y = y, color = ind)) +
    geom_point() +
    geom_hline(data = mns, aes(yintercept = meany)) +
    facet_wrap(~ F, nrow = 1)

您的最后一个请求太模糊(即缺少上下文)。

于 2013-05-18T09:18:41.900 回答