首页 > 解决方案 > 在 R 中使用两个 Y 轴绘制问题

问题描述

我正在运行以下数据来创建布林带:

library(quantmod)
symbol = "AAPL"
stock_data = getSymbols(symbol,
                    from = "2019-01-01",
                    auto.assign = FALSE)
prices = Cl(stock_data)     
names(prices) = "price"

prices$avg = rollmeanr(prices$price, k=20)    
prices$sd = rollapplyr(prices$price, width = 20, FUN=sd)   
prices$sd2up = prices$avg + 2*prices$sd     
prices$sd2down = prices$avg - 2*prices$sd  
prices$delta_price = prices$price - shift(prices$price, n=1, fill= NA , type="lag")

我想绘制价格、平均值、sd2up 和 sd2down(它们都在同一个 y 轴上),然后在同一个图表中包含价格变化及其对应的 y 轴(价格在右边,变化在左侧)。我尝试了以下操作:

plot(prices["2020", c("price","avg","sd2up","sd2down")])
par(new=TRUE)
plot(prices["2020", "slope"])

我有 0 次合并图表的经验,我知道语法很可能不适合做这样的事情。情节很完美,但每个情节都是分开的。是因为我如何定义 x 和 y 数据吗?我真的很感激这方面的任何帮助。

标签: r

解决方案


推荐阅读