我有一張金融活動圖表和一對夫婦跑步金額。 事情變得有點忙,我在區分財政(截至6月30日)和歷年之間出現問題。有沒有辦法根據日期將背景設置爲不同的顏色?R根據日期設置繪圖背景
換句話說我可以設置背景爲lite綠色哪裏2009-06-30 <日期< 2010-07-01?
我有一張金融活動圖表和一對夫婦跑步金額。 事情變得有點忙,我在區分財政(截至6月30日)和歷年之間出現問題。有沒有辦法根據日期將背景設置爲不同的顏色?R根據日期設置繪圖背景
換句話說我可以設置背景爲lite綠色哪裏2009-06-30 <日期< 2010-07-01?
應用@ G-Grothendieck和@vincent的兩條建議 - 在zoo
包內使用rect
。 zoo
非常適合時間序列的任何可視化。
library(zoo)
#random data combined with time series that starts in 2009-01
v <- zooreg(rnorm(37), start = as.yearmon("2009-1"), freq=12)
plot(v, type = "n",xlab="",xaxt="n")
#this will catch some min and max values for y-axis points in rect
u <- par("usr")
#plot green rect - notice that x-coordinates are defined by date points
rect(as.yearmon("2009-6-30"), u[3], as.yearmon("2010-7-1"), u[4],
border = 0, col = "lightgreen")
lines(v)
axis(1, floor(time(v)))
#customized x-axis labels based on dates values
axis(1,at=c(2009.4, 2010.5),padj=-2,lty=0,labels=c("start","end"),cex.axis=0.8)
在繪製曲線之前,您可以繪製灰色矩形,並使用rect
。 您還需要繪圖區域的尺寸:它們在par("usr")
中。
library(quantmod)
getSymbols("A")
plot(index(A), coredata(Ad(A)), type="n")
# This example uses calendar years: adapt as needed
dates <- c(
ISOdate(year(min(index(A))), 1, 1),
ISOdate(year(max(index(A))) + 1, 1, 1)
)
dates <- as.Date(dates)
dates <- seq.Date(dates[1], dates[2], by="2 year")
rect(
dates,
par("usr")[3],
as.Date(ISOdate(year(dates) + 1, 1, 1)),
par("usr")[4],
col="grey",
border=NA
)
lines(index(A), coredata(Ad(A)), lwd=3)
在動物園包中檢出xblocks.zoo
。例如example(xblocks.zoo)
非常感謝,這是非常有幫助! – screechOwl 2012-02-10 19:24:21