【问题标题】:R: rCharts and Shiny, charts won't show up when I run itR:rCharts 和 Shiny,当我运行它时图表不会显示
【发布时间】:2014-06-16 04:58:32
【问题描述】:

这似乎是一个持续的问题。我看到这个贴了几次,我尝试了人们提供的所有不同的解决方案。但没有什么对我有用。 运行时我的图表不会显示:(

这是我的 ui.R

## ui.R
require('rCharts')
require('shiny')
require("quantmod")
require("TTR")
require("stringr")
require('lubridate')
options(RCHART_LIB = 'polycharts')

shinyUI(pageWithSidebar(
  headerPanel('test'),
  sidebarPanel(p('test')
  ),
  mainPanel(
    showOutput('graph',lib='polycharts')
  )
))

这是我的服务器。R

#Dependencies
require('rCharts')
require('shiny')
require("quantmod")
require("TTR")
require("stringr")
require('lubridate')

#functions
SYM<-function (x,loc='yahoo') {
  getSymbols(x,src=loc)
  return(get(x))}

data.setup<-function(data,loc='yahoo',start.date=Sys.Date()-months(1),
                     end.date=Sys.Date()) {
  getSymbols(data,src=loc)
  x<-as.data.frame(window(SYM(data,loc=loc),
                          start=as.character(start.date),
                          end=as.character(end.date)))
  x$dates<-row.names(x)
  return(return(x)) 
}

## server.r
shinyServer(function(input, output) {
  output$graph <- renderChart2({
    a<-data.setup('AAPL')  
    m1 <- mPlot(x = 'dates', y = c("AAPL.High", "AAPL.Low"), type = "Line", data = a)
    m1$set(dom = 'graph')
    return(m1)
  })
})

*我的主要问题是我无法理解 showOutput 函数是如何工作的。 showOutput 中的 lib 指的是什么?我找不到任何解释这一点的指南。 当谈到 R 中的环境时,我仍然是新手。非常感谢针对此的答案!

【问题讨论】:

  • 如果您使用的是renderChart2,请删除您设置m1$set(dom = 'graph') 的行。只有renderChart 才需要该行。让我知道这是否有效。
  • 不,这不起作用,结果相同。如...没有情节
  • 啊,好吧。您正在使用mPlot,它对应于库morrisjs。您需要使用showOutput('graph', 'morris')
  • 成功了!有什么地方可以查找 lib 的哪些值在什么时候起作用?或者学习它的逻辑?
  • README 这里有大多数库的示例。按照惯例,showOutput 始终使用库的全部小写名称。您还可以通过键入 m1$lib 来了解生成绘图的库。

标签: r plot shiny rcharts


【解决方案1】:

showOutput 行需要使用lib = "morris",因为 OP 使用的是mPlot。有关库的完整列表,您可以查看 README。或者,您也可以通过键入 m1$lib 来获取库的名称。

【讨论】:

  • 博士,使用这个例子:nPlot(Freq ~ Hair, group = "Eye", data = hair_eye_male, type = 'multiBarChart') 我没有得到任何输出,没有错误,无论如何。我正在尝试对 discreteBarChart 做同样的事情
【解决方案2】:

这就像 cmets 中提到的那样工作。我只是在此处添加它,以便其他人更容易找到。

require('rCharts')
require('shiny')
require("quantmod")
require("TTR")
require("stringr")
require('lubridate')
options(RCHART_LIB = 'morris')

shinyUI(pageWithSidebar(
  headerPanel('test'),
  sidebarPanel(p('test')
  ),
  mainPanel(
    showOutput('graph',lib='morris')
  )
))

#Dependencies
require('rCharts')
require('shiny')
require("quantmod")
require("TTR")
require("stringr")
require('lubridate')

#functions
SYM<-function (x,loc='yahoo') {
  getSymbols(x,src=loc)
  return(get(x))}

data.setup<-function(data,loc='yahoo',start.date=Sys.Date()-months(1),
                     end.date=Sys.Date()) {
  getSymbols(data,src=loc)
  x<-as.data.frame(window(SYM(data,loc=loc),
                          start=as.character(start.date),
                          end=as.character(end.date)))
  x$dates<-row.names(x)
  return(return(x))
}

## server.r
shinyServer(function(input, output) {
  output$graph <- renderChart2({
    a<-data.setup('AAPL')
    m1 <- mPlot(x = 'dates', y = c("AAPL.High", "AAPL.Low"), type = "Line", data = a)
    return(m1)
  })
})

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    相关资源
    最近更新 更多