构思步骤:
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()
最终生成下图:
时间: 2024-10-09 20:34:12