Using `geom_line()` with X axis being factors

ggplot2, r

Solution

If I understand the issue correctly, specifying `group=1` and adding a `stat_summary()` layer should do the trick:

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

Problem

Suppose I have a dataframe: ``` hist <- data.frame(date=Sys.Date() + 0:13, counts=1:14) ``` I want to plot the total count against weekday, using a line to connect the points. The following puts points on each value: ``` 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) ``` When I try to connect them with a line (`geom_line()`), ggplot complains about only having one data observation per group and hence is not able to draw a line between the points. I understand this - it's trying to draw one line for each weekday (factor level). How can I get ggplot to just pretend (for the purposes of the line only) that the weekdays are numeric? Perhaps I have to have another column `day_of_week` that is 0 for monday, 1 for tuesday, etc?

Original source