有没有一种方法可以使用Shiny

时间:2019-09-19 21:44:00

标签: r shiny

我正在尝试向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)

我希望获得一条每日开盘价的图,并在平均价格处显示一条红色水平线。相反,我只得到一条红色的水平线,没有轴,也没有价格图。

1 个答案:

答案 0 :(得分:2)

如何使用lines代替abline

tickerData$horizontal_line <- meanOpeningPrice
lines(tickerData[, "horizontal_line"], col = "red")

ablineplot.xts一起使用似乎是一个问题:

How to plot simple vertical line with abline() in R?

https://github.com/joshuaulrich/xts/issues/47