Я хотел бы group
мои данные, основанные на взаимодействии двух переменных, но только отображающие эстетику одной из этих переменных. (Другая переменная представляет собой репликации, которые теоретически должны быть эквивалентны друг другу). Я могу найти неэлегантные способы сделать это, но похоже, что это должен быть более элегантный способ сделать это.`geom_line()` связывает точки, сопоставленные с разными группами
Например
# Data frame with two continuous variables and two factors
set.seed(0)
x <- rep(1:10, 4)
y <- c(rep(1:10, 2)+rnorm(20)/5, rep(6:15, 2) + rnorm(20)/5)
treatment <- gl(2, 20, 40, labels=letters[1:2])
replicate <- gl(2, 10, 40)
d <- data.frame(x=x, y=y, treatment=treatment, replicate=replicate)
ggplot(d, aes(x=x, y=y, colour=treatment, shape=replicate)) +
geom_point() + geom_line()
Это почти получает это право, за исключением того, что я не хочу, чтобы представить точки с различными формами. Похоже, что group=interaction(treatment, replicate)
бы помочь (например, на основе this question, но geom_line()
еще соединяет точки в разных группах:
ggplot(d, aes(x=x, y=y, colour=treatment, group=interaction("treatment", "replicate"))) +
geom_point() + geom_line()
я могу решить эту проблему, вручную создавая колонки взаимодействия и group
Ing тем, что:
d$interact <- interaction(d$replicate, d$treatment)
ggplot(d, aes(x=x, y=y, colour=treatment, group=interact)) +
geom_point() + geom_line()
, но похоже, что должно быть больше ggplot2
-нативный способ получить geom_line
, чтобы соединяться только точки из той же группы.
Почему вы помещаете 'взаимодействие (« обрабатывать »,« реплицировать »)' во втором примере не фактические имена столбцов? Для меня «группа = взаимодействие (лечение, репликация)» дает ожидаемый результат –
возможный дубликат [группа по двум столбцам в ggplot2] (http://stackoverflow.com/questions/9968976/group-by-two-columns-in- ggplot2) –
Разница в том, что в цитированном вопросе (который я хотел связать изначально, теперь отредактирован, чтобы добавить ссылку), ответ _does_ использует кавычки, но он также использует 'qplot'. Я полагаю, что 'qplot' нуждается в переменных в кавычках, тогда как' ggplot' принимает их напрямую. –