48

这个问题是从一个较早的问题及其答案开始的。

首先是一些玩具数据:

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)

最初的问题询问如何为每所学校绘制价值年线。答案或多或少对应于下面的 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其视为一个因子。此外,p2groupgeom_line. 但是,当group美学像 p3 中那样下降时,线条就不会被绘制出来。

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

在此处输入图像描述

4

1 回答 1

52

用哈德利自己的话来说:

[对于在水平轴上具有因子的折线图] 重要的是手动指定分组。默认情况下,ggplot2 使用图中所有分类变量的组合来对几何图形进行分组——这不适用于该图,因为每个点都有一条单独的线。手动指定 group = 1 表示您想要一条连接所有点的单线。

实际上,您可以按照 koshke 在这里展示的非常不同的方式对这些点进行分组

于 2012-04-27T21:57:04.397 回答