【发布时间】:2012-08-21 11:03:42
【问题描述】:
我正在处理一些时间序列数据,并希望在某些条件成立时突出显示图表区域。例如:
require(ggplot2)
require(quantmod)
initDate <- "1993-01-31"
endDate <- "2012-08-10"
symbols <- c("SPY")
getSymbols(symbols, from=initDate, to=endDate, index.class=c("POSIXt","POSIXct"))
spy<-SPY$SPY.Adjusted
spy$sma<-SMA(spy$SPY.Adjusted,200)
spy<-spy[-(1:199),]
spy<-as.data.frame(spy)
ggplot(spy,aes(x=index(spy),y=spy$SPY.Adjusted))+geom_line()+geom_line(aes(x=index(spy),y=spy$sma))
上面的代码绘制了数据,但是当 close 高于 sma 时,如何突出显示该部分?这个问题类似于How to highlight time ranges on a plot?,但它是手动的。 ggplot2中是否有条件绘图功能?
【问题讨论】:
-
您链接到的问题 是 这样做的方法。 ggplot2 尚不具备理解
geom_shade_the_region_that_I_have_in_mind_you_know_that_one()之类的功能。您必须实际告诉它您想要阴影的区域。 -
如果您放入适当的库调用以指示运行该代码需要哪些包,您将增加让非量化人员试验您的代码的机会。
-
@joran 非常感谢您有见地的回答~会努力想出一些有用的东西。
-
不过,我应该补充一点,当然可以使用链接问题中的技术来编写一个返回所需
geom_rect对象的函数。但是您仍然必须自己“手动”编写该函数。