【问题标题】:rCharts and rickshaw: slider disappears from rickshaw chart when a datatable is added to my web pagerCharts 和人力车:将数据表添加到我的网页时,滑块从人力车图表中消失
【发布时间】:2013-11-17 17:06:19
【问题描述】:

我使用了不起的 rCharts 和 knitr 构建了一个网页。我的页面将人力车时间序列图表与滑块和数据表结合在一起。当我添加数据表时,所有滑块都从我的人力车图表中消失了。我尝试修改 config.yml,这样我就不会重复对相同资源的调用,但这并没有解决问题。任何想法都会有很大帮助。下面是一个可重现的 r-markdown 文件,可以使用 knitr 将其编织成 html 页面。

```{r echo = F, message = T, cache = F}
require(rCharts)
opts_knit$set(self.contained=T)
knitr::opts_chunk$set(results = 'asis', tidy = F, message = T, echo=F, fig.width=700)
```

### Chart
```{r chart}
# add dummy date column to iris to make a time series chart
x <- cbind(iris, date=seq.Date(as.Date("2010-01-01"), length.out=nrow(iris), by=1))
x$date <- as.double(as.POSIXct(x$date,origin="1970-01-01"))
r2 <- Rickshaw$new()
r2$layer(
  Sepal.Length ~ date,
  data = x,
  type = "line",
  min = "auto"
)
r2$set(
  slider = TRUE,
  title = "IRIS",
  width = 700
)
r2$print('chart', include_assets=T, cdn=T)
```

### Table
```{r table}
r2 <- dTable(iris)
r2$print('table', include_assets=T, cdn=T)
```

【问题讨论】:

    标签: r knitr rcharts rickshaw


    【解决方案1】:

    出现问题是因为jQuery 被包含两次。一个快速的解决方法是向knitr 添加一个文档挂钩,这将删除与jQuery 重复的行。确保为该块设置cache = F,以便每次调用knitr 时都会运行它。在未来的版本中,我将在print 中添加一个jQuery 参数,以便您可以关闭它,如果您已经在页面上加载了jQuery

    ```{r cache = F}
    library(knitr)
    knit_hooks$set(document = function(doc){
      pat = "<script type='text/javascript' src=http://code.jquery.com/jquery-1.10.2.min.js></script>"
      gsub(pat, "", doc)
    })
    ```
    

    【讨论】:

    • 很高兴它有帮助。您可以接受答案并关闭此问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 2013-09-03
    相关资源
    最近更新 更多