使用以 X 轴为因素的 `geom_line()`
Posted
技术标签:
【中文标题】使用以 X 轴为因素的 `geom_line()`【英文标题】:Using `geom_line()` with X axis being factors 【发布时间】:2013-04-27 08:58:00 【问题描述】:假设我有一个数据框:
hist <- data.frame(date=Sys.Date() + 0:13,
counts=1:14)
我想根据工作日绘制总计数,使用 line 连接点。 以下将 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,等等?
【问题讨论】:
【参考方案1】:如果我理解正确,指定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")
【讨论】:
太棒了!group=1
的目的是什么(为什么是 1?这是做什么的?)
哦,我想我找到了。 here (ggplot2 documentation)
如果你想一次绘制多条线,你应该指定`group=variableWhichDefinesLines'以上是关于使用以 X 轴为因素的 `geom_line()`的主要内容,如果未能解决你的问题,请参考以下文章