встроить rChart в Markdown

#r #rcharts #nvd3.js

#r #rcharts #nvd3.js

Вопрос:

Я пытаюсь встроить диаграмму NVD3 в документ Markdown. Я использую систему Ubuntu64 с RStudio 0.98.932, R 3.1.0, rCharts 0.4.2, браузер Chrome.

Инструкции / код по этой ссылке:

  ```{r}

library(rCharts)
library(knitr)
opts_chunk$set(comment = NA, results = "asis", comment = NA, tidy = F)

hair_eye_male = subset(as.data.frame(HairEyeColor), Sex == "Male")
n1 <- nPlot(Freq ~ Hair, group = 'Eye', 
  data = hair_eye_male, type = 'multiBarChart'
)
n1$set(width = 600)
# n1$show('iframesrc', cdn = TRUE)  # option 1
# n1$show('inline', include_assets = TRUE, cdn = TRUE)  # option 2
```
  

Ни один из вариантов [n1 $ show] не работает, я просто получаю код в браузере. Есть ли другой способ включить документы NVD3 в Markdown?

Ответ №1:

Чтобы заставить rCharts работать с knit2html, вам нужно будет использовать метод print с аргументом include_assets = TRUE . Это связано с тем, что knitr не будет автоматически добавлять ресурсы js и css, требуемые для построения rCharts. Вот минимальный рабочий пример.

 ## MorrisJS with Knit2HTML

```{r results = 'asis', comment = NA}
require(rCharts)
data(economics, package = 'ggplot2')
econ <- transform(economics, date = as.character(date))
m1 <- mPlot(x = 'date', y = c('psavert', 'uempmed'), type = 'Line',
  data = econ)
m1$set(pointSize = 0, lineWidth = 1)
m1$print('chart2', include_assets = TRUE)
```
  

Обратите внимание, что вам нужно использовать m1$print('chart2', include_assets = TRUE, cdn = TRUE) , если вы собираетесь опубликовать свою диаграмму на RPubs, поскольку в противном случае ресурсы JS и CSS будут предоставляться из вашей локальной библиотеки.

Источник:Knitr HTML в R Markdown

Ответ №2:

У меня этот код работает. Я использую ubuntu64 и ту же конфигурацию, о которой вы упомянули.

 ```{r, echo=FALSE,results='asis',comment=NA}
library(rCharts)
hair_eye_male <- subset(as.data.frame(HairEyeColor), Sex == "Male")
n1 <- nPlot(Freq ~ Hair, group = "Eye", data = hair_eye_male, type = "multiBarChart")
n1$show('iframesrc',cdn=TRUE)
```
  

Примечание: вы должны написать results=’asis’ и comment = NA в параметрах фрагмента, а не использовать opts_chunk$set так, как у вас есть в вашем блоке кода и что вы вставили в copy.com .

Комментарии:

1. Спасибо, каунди. Вы правы, комментарий = NA появляется дважды, это в исходном коде, который я скопировал / вставил. Почему-то код не работает. Когда я вяжу HTML, в браузере остается только код. Должно быть, я где-то что-то делаю не так.

2. Это не так. Как сказано в комментарии, в браузере есть только код. Графика нет.

3. вы должны быть подключены к Интернету и подождать, скажем, 1-2 минуты, пока появится диаграмма.

4. Я не вижу ничего, что выглядит неправильным в коде. Не могли бы вы опубликовать .Rmd и .html в качестве сути или на каком-либо другом сайте общего доступа, чтобы посмотреть, смогу ли я воспроизвести вашу ошибку?

5. @timelyportfolio : copy.com/paeRvRDKCYTr [sessionInfo], copy.com/NRCxrEV83xfn [html], copy.com/x1pddZTCRktK [Rmd].