我是个新手.我想创建一个连续可变时间序列的geom_线图,然后添加一个由事件组成的层.连续变量及其时间戳存储在一个数据中.帧,事件及其时间戳存储在另一个数据中.框架
我想做的是类似于金融图表的事情.谷歌.通用域名格式.在这些时间序列中,时间序列是股票价格,有"标志"来表示新闻事件.我实际上并没有绘制金融方面的东西,但图形的类型是类似的.我试图绘制日志(log)文件数据的可视化图.这里有一个例子来说明我的意思...
如果可行(?),我想使用单独的数据.每层的帧(一个用于连续变量观测,另一个用于事件).
经过一些try 和错误,这是我能得到的最接近的.这里,我使用的是来自ggplot附带的数据集的示例数据.《经济学》包含一些我想绘制的时间序列数据,《总统》包含一些事件(总统选举).
library(ggplot2)
data(presidential)
data(economics)
presidential <- presidential[-(1:3),]
yrng <- range(economics$unemploy)
ymin <- yrng[1]
ymax <- yrng[1] + 0.1*(yrng[2]-yrng[1])
p2 <- ggplot()
p2 <- p2 + geom_line(mapping=aes(x=date, y=unemploy), data=economics , size=3, alpha=0.5)
p2 <- p2 + scale_x_date("time") + scale_y_continuous(name="unemployed [1000's]")
p2 <- p2 + geom_segment(mapping=aes(x=start,y=ymin, xend=start, yend=ymax, colour=name), data=presidential, size=2, alpha=0.5)
p2 <- p2 + geom_point(mapping=aes(x=start,y=ymax, colour=name ), data=presidential, size=3)
p2 <- p2 + geom_text(mapping=aes(x=start, y=ymax, label=name, angle=20, hjust=-0.1, vjust=0.1),size=6, data=presidential)
p2
问题:
对于非常稀疏的事件,这是可以的,但是如果有一个集群(就像日志(log)文件中经常发生的那样),它就会变得混乱.有没有什么技巧可以用来整洁地显示短时间内发生的一系列事件?我在考虑位置抖动,但我真的很难走这么远.谷歌图表将这些事件"标志"叠加在一起,如果它们很多的话.
实际上,我不喜欢将事件数据粘贴在与连续测量显示相同的刻度上.我更愿意把它放在一个平面网格中.问题是,所有方面都必须来自相同的数据.帧(不确定这是不是真的).如果是这样,这似乎也不理想(或者我只是想避免使用reshape ?)