我正试图以百分比形式将“反应”(喜欢,哇等)的叠加条形图随着时间的推移制作成Facebook分享。
我已将数据抓取并导入R Studio,并将其清除到以下列:
status_published(日期时间格式),num_reactions,num_likes,num_loves,num_wows,num_hahas,num_sads,num_angrys
要使用ggplot的颜色变量来显示不同类型的反应,我希望在num_reactions下分配第3到第8列,可能使用:
ggplot(data = I_love_milk, aes(x=Time, y=Reactions)) + geom_point(aes(color=Types))
在这种情况下,我如何制作反应类型?
有什么想法吗?谢谢你的帮助!
答案 0 :(得分:0)
我不确定您想要获得的数据的表示形式(可能提供数据样本会有所帮助),但我认为基本问题是您的数据需要wide
数据long
}数据来创建类别。
要转换数据,只需使用melt
包中提供的reshape
功能。
请参阅下面的示例。
require(ggplot2)
require(reshape)
df <- read.table(textConnection('datetime, num_reactions, num_likes, num_loves, num_wows, num_hahas, num_sads, num_angrys
01/01/2017 10:40, 15, 4, 2, 0, 2, 3, 4
01/01/2017 10:41, 12, 3, 0, 3, 3, 1, 2
03/01/2017 10:42, 19, 4, 4, 2, 4, 3, 2
04/01/2017 10:43, 9, 0, 0, 0, 4, 3, 2
05/01/2017 10:44, 12, 1, 2, 2, 2, 3, 2'), sep=',', header=TRUE)
melted <- melt(data=df, id='datetime')
g <- ggplot(data=melted, aes(x=datetime, y=value, color=variable)) + geom_point()
g