【问题标题】:plot.xts + abline not quite accurate?plot.xts + abline 不太准确?
【发布时间】:2013-09-20 18:21:59
【问题描述】:

我正在使用xtsExtra 绘制 xts 对象的一些散点图,并想绘制一条通过零的水平线,但它看起来位置错误...请看下面的代码?这是一个错误吗?

set.seed(123)
require(xts)
f <- xts(rnorm(100,0.0001,0.003),Sys.Date()-c(100:1))
f1 <- xts(rnorm(100,0.0001,0.003),Sys.Date()-c(100:1))
require(xtsExtra)
plot(f,f1)
abline(h=0,col='red')

【问题讨论】:

  • 也许可以,但你为什么要使用这样的 xts 对象呢? plot.xts 期望 x 轴是基于时间的。
  • 好的...即使您使用plot(f) 获得x-asis 时基然后abline(h=0, col='red'),它仍然是错误的...
  • 我同意 GSee 的观点。除非提问者能想出一个有意义的理由来有效地使用名为“可扩展时间序列”的对象没有时间序列,否则投票结束。
  • 当我尝试plot(f); abline(h=0) 时,该行出现在正确的位置,那么究竟什么是“错误”?也不清楚您是要尝试绘制 coredata 值的散点图还是想要两个时间索引系列的“平行图”。
  • @SlowLearner 这怎么没有建设性?一个人画了一个xts 情节,然后想在上面abline。例如,我 quantmod::getSymbols('GDP',src='FRED') 想遮蔽经济衰退......这是一个常见的用例。

标签: r xts


【解决方案1】:

Jeff Ryan 可能已经回答了这个问题here

试试,

abline(v=.index(X)[50], col="red")

注意.index 中的“点”。事实上,xts 使用内部 POSIXct(like) x 轴的时间,因此您需要以这种方式访问​​它。

【讨论】:

  • 感谢您的评论,但它不能解决水平线的情况......因为v 是垂直的......在我的例子中,x 轴不是时间。 ..
  • @h.l.m 好的。使用quantmod::getSymbols('GDP',src='FRED') 我对abline(h=0) 没有问题,只有v
  • @h.l.m 在你的例子中,我能够abline(h=.5) 并在中间得到一条线。
  • 我认为vh 使用的值是基于plot.xts 使用的新比例尺,只是不太清楚如何访问和有效使用它缩放使其直观......
  • 这太棒了!我最终得到了以下代码:abline(v=index(my.xts.data)[endpoints(my.xts.data, "days")])。通过这种方式,R 为每日时间步长制作网格线。
猜你喜欢
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 2020-06-29
  • 2014-07-24
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多