How can I add a vertical line to a timeSeries plot?
book
Article ID: KB0080750
calendar_today
Updated On:
Products
Versions
Spotfire S+
All supported versions
Description
User would like to add a vertical line to a timeSeries() plot:
Issue/Introduction
How can I add a vertical line to a timeSeries plot?
Environment
Product: TIBCO Spotfire S+
Version: All supported versions
OS: All supported operating systems
--------------------
Resolution
There are different methods to add a vertical line at a specific date depending on which plotting function you are using. Here are two examples using the plot.timeSeries() function and the tsplot() function.
1. Using plot.timeSeries() function:
You can use the abline() function to add vertical lines to your plot.timeSeries() graph. One important thing to note is that the x-axis plot coordinates of a time series plot range from 0 to 1, not from the start date to the end date. Please see the following code for an example of how to do this using the built-in dataset djia:
## plot the Dow Jones Industrial Average between Sept 1987 and Sept 1989 > djia1 <-djia[positions(djia)>=timeDate("09/01/87") & positions(djia)<=timeDate("09/01/89"), 1:4]
# Plot the timeSeries # I set reference.grid argument to False so that the # reference grid lines did not plot > ts.out=plot.timeSeries(djia1, plot.type="hloc", reference.grid=F)
#Get the x-axis tick values from the plot.timeSeries() plot > x1 <- ts.out$ticks$small$at
### You can also get x1 like this which creates a time sequence ### ### x1 <- timeSeq(from=ts.out$scale$user.coordinates[1], to=ts.out$scale$user.coordinates[2], by="months") ###
# Divide the x-axis into the length of the x1 sequence to # get the coordinates of the tick marks > x2 <- seq(0,1,length=length(x1))
#Plot the vertical lines using abline() where #the x-axis label is Q1 (Jan 1st) #the lwd argument makes the line thicker > abline(v=c(x2[months(x1)=="Jan" & days(x1)=="1"]), lwd=6)
2. Using ts.plot() function:
The ts.plot() function works differently and allows you to pass the year to abline:
> ts.plot(hstart) > abline(v = 1973)
References: You can view the help files for any of the functions used above by typing a question mark followed by the function name at the S+ command prompt:
> ?plot.timeSeries > ?timeSeq > ?seq > ?par #(to view information on the lwd argument) > ?abline > ?ts.plot