【问题标题】:2 Knitr/R Markdown/Rstudio issues: Highcharts and Morris.js2 Knitr/R Markdown/Rstudio 问题:Highcharts 和 Morris.js
【发布时间】:2013-06-18 12:06:57
【问题描述】:

我目前正在尝试使用我自己的数据复制几种不同类型的 rCharts。第一个是 HighCharts 图表,代码如下:

````{r}
setwd("C:/Users/ypetscher/Dropbox/R fun")  
blah<-read.csv("g8a.csv")`                                                                 
require(slidify)                                                                          
require(rCharts)                                                                      
require(rHighcharts)
```

```{r}
x<-data.frame(blah,stringsAsFactors=TRUE)                                             
colnames(x)<-substr(colnames(x),2,5)   
a<-rHighcharts:::Chart$new()                                                   
a$chart(type="column")                                                           
a$title(text="Percent of Students on Grade Level on G8 FCAT for Reading (1), Math (2),        Writing (3), and Science (4)")                                             
a$xAxis(categories=rownames(x))                                              
a$yAxis(title=list(text="Percent Proficient"))                                               
a$data(x)
```                                                                                          

当它作为一个块运行时,图形生成得很好,但是当我在 markdown 中使用 Knit HTML 时,它会在预览阶段停留一段时间,当我终止它时,它会给出“状态 15”消息,我不清楚这意味着什么以及应该如何解决。

我正在尝试的第二个图表是 Markdown 中带有 knitr 的 Morris.js 图表。我将我的 R 代码放入 R Markdown 中,如下所示:

```{r} 
library(slidify)                                                                           
library(knitr)                                                                          
library(rCharts)                                                                      
library(RColorBrewer)                                                                    
library(reshape2)                                                      
setwd("C:/Users/ypetscher/Dropbox/R fun") 
blah<-read.csv("g8.csv") 
blah 
``` 

```{r}  
m2<-mPlot(x="year",y=colnames(blah)[-1],data=blah, type="Bar")
m2$set(barColors=brewer.pal(4,"Spectral"))  
m2$set(xlab="Year")                                                                   
m2$set(postUnits="%")                                                               
m2$set(hideHover="auto")                                                                           
m2
```

当我运行这些块时,它会以我期望的方式生成一个漂亮的图表,其中包含 (file:///C:/Users/ypetscher/AppData/Local/Temp/RtmpW4q3ka/filed284f137718.html) 的 html 文件;但是,当我单击 Knit HTML 时,我获得了一个包含代码但不生成图形的文件。此外,当 Google Chrome 出现时,我收到以下错误:

“未找到该网址的网页: file:///C:/Users/YPETSC~1/AppData/Local/Temp/Rtmpk1Pfbp/filee0c383670e0.html 错误 6 (net::ERR_FILE_NOT_FOUND):文件或目录不能被 找到了。”

在诊断这些问题时,我们将不胜感激。非常感谢!

【问题讨论】:

  • 请不要在未披露信息的情况下跨所有论坛发帖。
  • 你可以关闭它,因为它已经回答了!
  • 您能否接受答案,以便将此问题标记为已完成?

标签: r knitr rstudio r-markdown rcharts


【解决方案1】:

注意:这与我在 knitr google 组中发布的解决方案相同。

要让 rCharts 与 knit2html 一起工作,您需要使用 print 方法,参数 include_assets = TRUE。这是因为 knitr 不会自动添加 rCharts 绘图所需的 js 和 css 资产。这是一个最小的工作示例。

## 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)
```

请注意,如果您打算在 RPubs 上发布图表,则需要使用 m1$print('chart2', include_assets = TRUE, cdn = TRUE),否则 JS 和 CSS 资产将从您的本地库中提供。

希望这会有所帮助。

【讨论】:

  • Ramnath,有没有关于 rCharts 的文档?我刚刚安装了它,除了rPlot之外的任何功能都找不到帮助。
猜你喜欢
  • 2012-08-06
  • 2013-11-05
  • 2019-04-14
  • 2014-09-16
  • 2020-10-07
  • 2013-02-09
  • 1970-01-01
  • 2023-03-31
  • 2016-11-28
相关资源
最近更新 更多