6

我正在尝试使用 R 的优秀 quantmod 包中的绘图函数来显示财务数据中的“差距”。

通常,R 允许您使用 NA 值显示绘图中的间隙,如下所示:

x<-1:10
y<-2*x
y[4:7]<-NA
plot(x,y,type="l")

我想对 R/quantmod 的烛图图做类似的事情。但是,在绘图之前删除了包含 NA 的数据行(chartSeries 代码中有一个 na.omit 命令可以执行此操作),因此我看不到如何执行此操作。

一个例子是:

require(quantmod)

#Make some pretend data
x<-0:30
y<-100+20*sin(x)
y.open<-y[-length(y)]
y.close<-y[-1]
val<-as.xts(cbind(y.open,y.open+5,y.close-5,y.close,1000),order.by=as.POSIXct(paste("2011-01-",x[-1],sep='')))
colnames(val)<-c("Open","High","Low","Close","Volume")

#Plot this pretend data
candleChart(val,theme="white")

#Now try and make a "gap" in the middle of the data and plot it
val2<-val
val2[5:20,]<-NA
candleChart(val2,theme="white")

这样做的“正确”方法是什么?我想我可以用我自己版本的这个函数(相同但没有 na.omit() 调用)覆盖chartSeries,但这似乎相当激烈。

有没有可能做这种事情的选择?我一直无法谷歌任何有用的东西......

谢谢,fttb

4

1 回答 1

7

答案不是使用 chartSeries,而是使用较新的变体(技术上仍在开发中)chart_Series。注意下划线。

chart_Series(val2)

如果您正在寻找有关 quantmod 和在金融中使用 R 的更多详细信息,我们将于本月底在芝加哥举办一次大型会议。更多信息可以在这里找到:R/Finance 2011

希望对您有所帮助,并希望在芝加哥见到您!

于 2011-04-01T15:29:37.343 回答