R语言实战-如何分析QQ群记录2-每日信息数量图

构思步骤:

  1、从data中取出时间数据。

  2、从时间数据中提取日期数据。

  3、根据日期数据进行汇总每日的消息数量。

  4、利用ggplot2进行绘图。

#从data中获取时间信息
time<-data$dateTime

#把时间中的日期属性提取出来
p<-paste(year(time),month(time),day(time),sep="-")

#把p转换为数据框
Timed<-data.frame(p)

#通过P分组,p段名称变成days,增加数量列Freq,根据数量进行分组
fenzu<-sqldf("select p days,count(*)Freq from Timed group by p")

#上面fenzu后日期排序是混乱的,需要针对日期进行排序,从小到大
#as.date()把days列转变为日期
#order()把日期进行从小到大排序
fenzu<- fenzu[order(as.Date(fenzu$days)),]

#利用ggplot开始作图
#数据为fenzu,x轴为days,y轴为Freq
ggplot(fenzu,aes(x=as.Date(days),y=Freq))+
  #绘制密度图,向下填充颜色为中紫色,透明度为0.5
    geom_area(fill="mediumpurple1",alpha=0.5)+
  #绘制顶点,顶点为♠标记,大小为3,颜色为蓝色
    geom_point(shape="♠",size=3,colour="blue")+
  #x坐标轴名称为时间,y坐标轴名称为消息密集度
    xlab("时间")+ylab("消息密集度")+
  #设置图表的主题
  theme_solarized_2()

  最终生成下图:

 

posted @ 2017-08-17 13:22  绪哥哥  阅读(222)  评论(0编辑  收藏  举报