运行时闪亮的Rmarkdown无法绘制rCharts图

时间:2015-12-22 13:18:48

标签: plot shiny nvd3.js r-markdown rcharts

我创建了一个带有闪亮运行时的Rmarkdown文档。原因是根据某些选择,数据从数据库中获取,输出(表格和图表)相应地更新为新选择。对于我正在使用ggplot2的情节,这很好用,但是我想用rCharts引入更多的交互,这里是我被困的地方,尝试了使用renderPlot(),renderChart()和renderChart2的各种组合()返回rCharts对象p,使用p $ show()或p $ print()使用不同的参数,没有任何选项适合我。 这些是我使用的代码示例。 部首:

---
title: "my title"
runtime: shiny
output:
  html_document
ext_widgets: {rCharts: [libraries/nvd3]}
---

这是绘图代码

```{r, echo=FALSE, comment = NA, results = "asis", comment = NA, tidy = F}
renderPlot({
  data.dt <- data.table(analysisData())
  aggdata2 <- as.data.frame(data.dt[, lapply(.SD, sum), by = date])
  aggdata2 <- aggdata2[with(aggdata2,order(date)),]
  p <- nPlot(y ~ date, data = aggdata2, type = "lineChart", width = 600)
  p$xAxis(
      tickFormat =   "#!
      function(d) {return d3.time.format('%Y-%m-%d')(new Date(d*1000*3600*24));}
      !#"
    )
  #p$print()
  #p$show('iframesrc', cdn =TRUE, include_assets=TRUE)
  return(p)
})
```

这确实是我到目前为止找到的最佳解决方案:它正在打开一个新窗口,其中包含我想要创建的图表。但是,它在markdown html中留下了一个空白区域,我想要图表。

对于analysisData()函数,这里是一个简化的代码

```{r, echo=FALSE}
analysisData <- reactive({
  variable1 = input$variable1
  variable2 = input$variable2


  tables = "sqlTable"
  drv <- dbDriver("PostgreSQL")
  dbname <- "dbname"; dbuser <- "dbuser"; 
  dbport = dbport
  dbhost <- "dbhost.com";
  con <- dbConnect(drv, host=dbhost, port = dbport, dbname=dbname, user=dbuser)

  selectStatement = "select * from %s where variable1=%s and variable2=%s"
  query = sprintf(selectStatement, tables, variable1, variable2)

  dataset <- dbGetQuery(con,query)
  lapply(dbListConnections(drv),dbDisconnect)
  dbUnloadDriver(drv)
  dataset$date <- as.Date(dataset$date)
  dataset
})
```

您对如何解决问题有什么建议吗?任何提示都表示赞赏。

0 个答案:

没有答案