`geom_line ()` łączy punkty mapowane do różnych grup
Chciałbymgroup
moje dane oparte są na interakcji dwóch zmiennych, ale tylko odwzorowuję estetykę na jedną z tych zmiennych. (Druga zmienna reprezentuje repliki, które teoretycznie powinny być sobie równoważne). Mogę znaleźć nieeleganckie sposoby na zrobienie tego, ale wygląda na to, że powinien to być bardziej elegancki sposób.
Na przykład
# 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()
To prawie robi to dobrze, z wyjątkiem tego, że nie chcę reprezentować punktów o różnych kształtach. To wygląda jakgroup=interaction(treatment, replicate)
pomoże (np. na podstawieto pytanie, alegeom_line()
nadal łączy punkty w różnych grupach:
ggplot(d, aes(x=x, y=y, colour=treatment, group=interaction("treatment", "replicate"))) +
geom_point() + geom_line()
Mogę rozwiązać problem, ręcznie tworząc kolumnę interakcji igroup
przez to:
d$interact <- interaction(d$replicate, d$treatment)
ggplot(d, aes(x=x, y=y, colour=treatment, group=interact)) +
geom_point() + geom_line()
ale wydaje się, że powinno być coś więcejggplot2
-natywny sposób zdobywaniageom_line
łączyć tylko punkty z tej samej grupy.