Rysowanie linii i estetyka grupy w ggplot2
To pytanie wynika z wcześniejszegopytanie i jego odpowiedzi.
Najpierw niektóre dane dotyczące zabawek:
df = read.table(text =
"School Year Value
A 1998 5
B 1999 10
C 2000 15
A 2000 7
B 2001 15
C 2002 20", sep = "", header = TRUE)
Pierwotne pytanie zadawało pytanie, jak drukować linie roku wartości dla każdej szkoły. Odpowiedzi mniej więcej odpowiadają p1 i p2 poniżej. Ale rozważ także p3.
library(ggplot2)
(p1 <- ggplot(data = df, aes(x = Year, y = Value, colour = School)) +
geom_line() + geom_point())
(p2 <- ggplot(data = df, aes(x = factor(Year), y = Value, colour = School)) +
geom_line(aes(group = School)) + geom_point())
(p3 <- ggplot(data = df, aes(x = factor(Year), y = Value, colour = School)) +
geom_line() + geom_point())
Zarówno p1, jak i p2 wykonują zadanie. Różnica między p1 a p2 polega na tym, że p1 traktujeYear
jako numeryczne, podczas gdy p2 traktujeYear
jako czynnik. Ponadto p2 zawiera agroup
estetyka wgeom_line
. Ale kiedygroup
estetyka jest odrzucana, jak w p3, linie nie są rysowane.
Pytanie brzmi: dlaczego jestgroup
estetyka konieczna, gdy zmienna osi x jest czynnikiem, alegroup
estetyka nie jest potrzebna, gdy zmienna osi X jest numeryczna?