Двойная линейная диаграмма ggplot и 3 столбца
Я извлек пакетом Rfacebook некоторые данные о страницах Facebook. Я пытаюсь получить две линейные диаграммы рядом, как прикрепленное изображение (линейную диаграмму для каждого имени пользователя), где я могу отображать лайки, комментарии и публикации одновременно, как прикрепленное изображение.
FromUser time shares comments likes
User 1 17-01-18 67 5 100
User 2 16-01-18 46 13 65
User 1 16-01-18 32 25 32
User 1 15-01-18 45 36 45
User 2 14-01-18 64 52 58
Я попытался с помощью следующего кода, но я не работаю. Любое предложение?
line_chart <- ggplot(dataframe, aes(x = time)) +
geom_line(aes(y = shares), colour="blue") +
geom_line(aes(y = comments), colour = "grey") +
geom_line(aes(y = likes), colour = "grey") +
ylab(label="Number of interactions") +
xlab("Days")
1 ответ
Решение
Текущий график может быть легче создать, переставив ваши данные с помощью tidyr
:
library(tidyr)
#use gather to make a metric column
dataframe.2 <- dataframe %>% gather(Metric, Value, -time, -FromUser)
#convert date for easy ploting
dataframe.2$time <- as.Date(dataframe.2$time , format = "%d-%m-%y")
Который дает одну запись на пользователя, время и метрику:
FromUser time Metric Value
User 1 2018-01-17 shares 67
User 2 2018-01-16 shares 46
User 1 2018-01-16 shares 32
User 1 2018-01-15 shares 45
User 2 2018-01-14 shares 64
User 1 2018-01-17 comments 5
User 2 2018-01-16 comments 13
User 1 2018-01-16 comments 25
User 1 2018-01-15 comments 36
User 2 2018-01-14 comments 52
User 1 2018-01-17 likes 100
User 2 2018-01-16 likes 65
User 1 2018-01-16 likes 32
User 1 2018-01-15 likes 45
User 2 2018-01-14 likes 58
Теперь добавьте в ggplot:
ggplot(data = dataframe.2, aes(x = time, y = Value)) +
geom_line(aes(color = Metric, group = Metric)) +facet_wrap(~FromUser) +
xlab("Date") + ylab("Number of interactions")