R:在时间序列图表上绘制信号

时间:2016-08-11 18:06:47

标签: r

我有一个时间序列数据集,其中包含:

   Date Value Signal
1 1/1/16 0.56  A
2 1/2/16 0.70
3 1/3/16 0.12  B
4 1/4/16 0.33  C
5 1/5/16 0.35

我想绘制值与日期图表,并在图表旁边的图表上放置信号(来自信号列)。实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是首先在初始plot()调用中绘制DateValue列,然后对text()进行后续调用以绘制Signal个标签。我们可以通过调用par('usr')来计算精确数据点的偏移量,以获得绘图的用户坐标范围(在plot()调用期间动态创建),提取y范围,取差值,并将其乘以一个分数,从而将偏移定义为图的y坐标范围的一部分。如果您愿意,可以替代地(或另外)从水平偏移的x坐标范围计算偏移量。

此演示将标签偏移y坐标范围的6%:

## coerce Date column to Date type
df$Date <- as.Date(df$Date,'%d/%m/%y');

## plot and label
plot(df$Date,df$Value,type='b');
text(df$Date,df$Value+diff(par('usr')[3:4])*6/100,df$Signal,xpd=NA);

数据

df <- data.frame(Date=c('1/1/16','1/2/16','1/3/16','1/4/16','1/5/16'),Value=c(0.56,0.7,0.12,
0.33,0.35),Signal=factor(c('A',NA,'B','C',NA)),stringsAsFactors=F);

plot