假设我有一个数据帧:
hist <- data.frame(date=Sys.Date() + 0:13,
counts=1:14)
我想用工作日绘制总计数,使用行连接点数。 以下内容为每个值添加 points :
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,等等?
答案 0 :(得分:47)
如果我正确理解了这个问题,指定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")