首页 文章

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

提问于
浏览
38

假设我有一个数据帧:

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

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

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)

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

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

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

1 回答

  • 41

    如果我正确理解了这个问题,指定 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")
    

    enter image description here

相关问题