使用`geom_line()`,X轴是因子

mat*_*fee 51 r ggplot2

假设我有一个数据帧:

hist <- data.frame(date=Sys.Date() + 0:13,
                   counts=1:14)
Run Code Online (Sandbox Code Playgroud)

我想用工作日绘制总计数,使用一条线连接点.以下是每个值的要点:

hist <- transform(hist, weekday=factor(weekdays(date),
                                       levels=c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')))
ggplot(hist, aes(x=weekday, y=counts)) + geom_point(stat='summary', fun.y=sum)
Run Code Online (Sandbox Code Playgroud)

当我尝试用line(geom_line())连接它们时,ggplot抱怨每组只有一个数据观察,因此无法在这些点之间画一条线.

我理解这一点 - 它试图为每个工作日绘制一条线(因子级别).

我怎样才能让ggplot假装(仅限于该行的目的)工作日是数字?也许我必须有另一个列day_of_week,星期一是0,星期二是1,等等?

bde*_*est 55

如果我正确理解了这个问题,那么指定group=1和添加一个stat_summary()图层应该可以解决问题:

ggplot(hist, aes(x=weekday, y=counts, group=1)) +
geom_point(stat='summary', fun.y=sum) +
stat_summary(fun.y=sum, geom="line")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 如果你想一次绘制多行,你应该指定`group = variableWhichDefinesLines' (12认同)
  • 太棒了!`group = 1`的目的是什么(为什么1?这是做什么的?) (4认同)
  • 哦,我想我找到了.[这里(ggplot2文件)](http://docs.ggplot2.org/current/aes_group_order.html) (3认同)