Подтвердить что ты не робот

Использование `geom_line()` с осью X является факторами

Предположим, что у меня есть dataframe:

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 для вторника и т.д.?

4b9b3361

Ответ 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")

enter image description here