2013-05-17 2 views
0

Хотите, чтобы у facet_wrap были разные параметры для каждого сюжета. Пример ниже:Использование facet_wrap в ggplot2

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 

, которая работает хорошо, есть линия в среднем у и точки имеют различные цвета выше и ниже линии.

У меня есть больший фрейм данных, где я хочу сделать это на каждом уровне фактора и использовать facet_wrap для отображения всех графиков. Я не уверен, как получить цвет и yintercept в ggplot для изменения для каждого графика в facet_wrap.

Кроме того, я хочу, чтобы участок имел больше слоев, то есть каждый график будет сравнивать MSE разных моделей.

Спасибо за помощь.

+0

У вас есть небольшое подмножество вашего фактического 'data.frame'? Вы читали http://docs.ggplot2.org/0.9.3.1/facet_wrap.html? «P + facet_wrap (~ yourFactor)» уже приносит желаемый результат? Пожалуйста, прочитайте также http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Beasterfield

ответ

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) 

Ваш последний запрос слишком расплывчатый (т. Е. Отсутствует контекст).

Смежные вопросы