如何在 R/quantmod 的图表Series/candleChart 图中显示差距

发布于 2024-10-29 16:06:49 字数 937 浏览 4 评论 0原文

我正在尝试使用 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")

执行此操作的“正确”方法是什么?我想我可以用我自己的这个函数版本覆盖 ChartSeries(相同但没有 na.omit() 调用),但这看起来相当激烈。

也许有一个选项可以做这种事情吗?我无法用谷歌搜索任何有用的东西...

谢谢, fttb

I am trying to show "gaps" in financial data using the plotting functions in the excellent quantmod package for R.

Normally R allows you to show gaps in plots using NA values, as with:

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

I would like to do something similar with R/quantmod's candleChart plots. However, rows of data containing NA's are removed before plotting (there is a na.omit command in the chartSeries code that does this) so I cannot see how to do this.

An example is:

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")

What is the "correct" way to do this? I guess I could overwrite chartSeries with my own version of this function (identical but without the na.omit() call), but that seems quite drastic.

Is there perhaps an option to do this kind of thing available? I have been unable to google anything useful...

Thanks,
fttb

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无法言说的痛 2024-11-05 16:06:49

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

chart_Series(val2)

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

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

The answer is not to use chartSeries, but rather the newer variant (still in development technically) chart_Series. Note the underscore.

chart_Series(val2)

If you're looking for more details on quantmod and using R in finance, we are hosting a large conference in Chicago at the end of this month. More info can be found here: R/Finance 2011

Hope that helps, and hope to see you in Chicago!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文