在ggplot2中绘制线条和群体审美

这个问题是从前面的问题及其答案开始的。

首先一些玩具数据:

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) 

最初的问题是如何为每所学校绘制价值年线。 答案或多或less对应于下面的p1和p2。 但也要考虑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()) 

p1和p2都做这个工作。 p1和p2之间的区别在于p1将Year视为数字,而p2则将Year视为一个因子。 另外,p2包含geom_line中的一group美学。 但是当group审美像p3那样下降的时候,线条并没有被画出来。

问题是:当x轴variables是一个因素时,为什么group审美是必要的,但是当x轴variables是数字时, group审美是不需要的?

在这里输入图像描述

用哈德利自己的话说:

重要的是[ 在水平轴上具有因子的线图 ]是手动指定分组。 默认情况下,ggplot2使用图中所有分类variables的组合来组成几何graphics – 这对于这个图不起作用,因为你得到每一个点的单独一行。 手动指定组= 1表示您想要一条连接所有点的线。

实际上,你可以用非常不同的方式来分组,如koshke所示