r语言 - 在图表中绘制水平线系列 get.current.chob() 中的错误:设置不正确或缺少图形设备



我想为高盛自 2000 年以来调整后的股价创建一个时间序列图,并为平均价格绘制一条水平线。但是,当我尝试绘制水平线时,我遇到了"get.current.chob(( 中的错误:设置不正确或缺少图形设备"错误消息。

library(quantmod)
getSymbols("GS", from = "2000-01-01", src="yahoo")
chart_Series(GS[,6], name = "Goldman Sachs", TA = 'addLines(h = mean(GS[,6]))')

您正在混合来自 2 个不同图表选项的代码。你在量子模和chart_SerieschartSeries.有点令人困惑,因为第二个版本往往有更好的图表,但不像chartSeries那样完整。chart_Series没有add_Lines功能。但是有一些解决方法。

简单的解决方案,使用chartSeries

library(quantmod)
getSymbols("GS", from = "2000-01-01", src="yahoo")
chartSeries(GS[,6], name = "Goldman Sachs", TA = 'addLines(h = mean(GS[,6]))')

使用chart_Series有点复杂:

您需要使用 add_TA,它需要一个 xts 对象,因此首先您需要创建一个具有相同值的 xts 对象。这些是下面的前 3 行代码。接下来绘制数据,然后使用 add_TA 添加水平线。并且您需要告诉add_TA在哪里绘制线条(on = 1 表示主绘图窗口(。

dates <- index(GS)
gs_mean <- mean(GS[,6])
gs_mean_xts <- xts(rep(gs_mean, length(dates)), dates)
# create chart
chart_Series(GS[,6], name = "Goldman Sachs")
# plot horizontal line on plot
add_TA(gs_mean_xts, on = 1, col = "blue", lwd = 2)

最新更新