我有一个时间序列数据集,其中包含:
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
我想绘制值与日期图表,并在图表旁边的图表上放置信号(来自信号列)。实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
执行此操作的一种方法是首先在初始plot()
调用中绘制Date
和Value
列,然后对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);