我正在尝试向renderPlot Shiny函数中的绘图添加水平线。当我为水平线添加abline命令时,该图不会渲染,而我只能看到一条水平线。
如果我删除abline命令,该图将按预期工作。我尝试将参数'new = FALSE'添加到abline命令中,结果相同。我在SO中看到了其他示例,它似乎可以工作,但是我无法使其正常运行。
library(shiny)
library(quantmod)
library(TTR)
# UI
ui <- pageWithSidebar(
# App title ----
headerPanel("Test Plot with Lines"),
# Sidebar panel for inputs ----
sidebarPanel(
textInput (inputId = "ticker",label = "Ticker Symbol",value="SPY")),
# Main panel for displaying outputs ----
mainPanel(
plotOutput(outputId = "mainPlot")
)
)
# Server logic
server <- function(input, output) {
OHLCData <- reactive ({
tickerData <- get(getSymbols(input$ticker))
return (tickerData)
})
output$mainPlot <- renderPlot ({
tickerData <- OHLCData()
meanOpeningPrice <- mean(tickerData[,1])
plot (tickerData[,1],main=paste(input$inputId,' Opening Price'))
abline (h=meanOpeningPrice,col='red',new=FALSE)
})
}
shinyApp(ui, server)
我希望获得一条每日开盘价的图,并在平均价格处显示一条红色水平线。相反,我只得到一条红色的水平线,没有轴,也没有价格图。
答案 0 :(得分:2)
如何使用lines
代替abline
:
tickerData$horizontal_line <- meanOpeningPrice
lines(tickerData[, "horizontal_line"], col = "red")
将abline
与plot.xts
一起使用似乎是一个问题: