Rysowanie linii i estetyka grupy w ggplot2
To pytanie wynika z wcześniejszegopytanie i jego odpowiedzi.
Najpierw niektóre dane dotyczące zabawek:
<code>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) </code>
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.
<code>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()) </code>
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?