在一个图表上绘制xts对象的所有列(未预定义数量)

时间:2018-01-09 19:58:04

标签: r plot xts

如何编写将从单个xts对象中获取所有列并将其绘制在单个图表上的R代码?

我的xts对象看起来像下面的截图,我在编写代码时不知道那里的列数是多少:https://github.com/jenssegers/optimus

我希望R获取每个列并将它们绘制为单个图表上的一条线。理想情况下,它应该是一些花哨的quantmod图表(因为每列都是特定投资工具的价格),但即使是简单的情节也可以。

补充评论。

这是我使用的数据文件(csv):screenshot of xts object

这是我到目前为止的代码:

etfs_history_input <- read.zoo(file = "etfs_history.csv", sep = ",", index.column = 1, header = TRUE, FUN=as.POSIXct, tz = "Europe/Moscow", format = "%Y-%m-%d")
etfs_h <- as.xts(coredata(etfs_history_input), order.by = index(etfs_history_input))

我在达到目标输出时所能达到的最接近的事情是写下这个:

apply(etfs_h, 2, plot)

但结果:

  • 在不同的图表上绘制不同的工具
  • 不显示工具名称(列标题)

2 个答案:

答案 0 :(得分:0)

你可以尝试融化,然后用ggplot绘图

"Q": "Drinks"

但是没有一个例子来测试那只是一个盲目的尝试

答案 1 :(得分:0)

如果您想使用?plot.xts进行投标,请阅读xts。 例如:

library(quantmod)
syms <- c("AAPL","MSFT", "NQ", "SSRM")
getSymbols(syms)

x <- lapply(syms, function(x) Cl(get(x)))
m <- do.call(cbind, x)

plot(m, main = "stocks")
addLegend("topleft", on=1, 
          legend.names = colnames(m), lty = 1)

enter image description here