BLT*_*BLT 3 r highcharts reporters
摘要:我的最终目标是使用rCharts,特别是Highcharts,作为ReporteRsPowerPoint 报告自动化工作流程的一部分。我想使用的图表之一在 Rstudio 的查看器窗格中呈现为 html,并且addPlot(function() print(myChart))不会将其添加到 PowerPoint。作为一种解决方法,我决定尝试保存myChart到磁盘,从那里我可以通过这种方式将其添加到 PowerPoint 中。
所以我的问题真的是,如何将我的 html 图像放入我的ReporteRs工作流程中?要么将其保存到磁盘,要么使其可读,ReporteRs都可以解决我的问题。
这个问题确实是一样的这一个,但我使用rCharts,特别是例如发现这里:
#if the packages are not already installed
install.packages('devtools')
require(devtools)
install_github('rCharts', 'ramnathv')
#code creates a radar chart using Highcharts
library(rCharts)
#create dummy dataframe with number ranging from 0 to 1
df<-data.frame(id=c("a","b","c","d","e"),val1=runif(5,0,1),val2=runif(5,0,1))
#muliply number by 100 to get percentage
df[,-1]<-df[,-1]*100
myChart <- Highcharts$new()
myChart$chart(polar = TRUE, type = "line",height=500)
myChart$xAxis(categories=df$id, tickmarkPlacement= 'on', lineWidth= 0)
myChart$yAxis(gridLineInterpolation= 'circle', lineWidth= 0, min= 0,max=100,endOnTick=T,tickInterval=10)
myChart$series(data = df[,"val1"],name = "Series 1", pointPlacement="on")
myChart$series(data = df[,"val2"],name = "Series 2", pointPlacement="on")
myChart
Run Code Online (Sandbox Code Playgroud)
所以如果我尝试
> png(filename="~/Documents/name.png")
> plot(myChart)
Error in as.double(y) :
cannot coerce type 'S4' to vector of type 'double'
> dev.off()
Run Code Online (Sandbox Code Playgroud)
我得到那个错误。
我看着Highcharts文档,以及许多 其他 潜在的 解决方案,似乎依赖于JavaScript和phantomjs。如果您的答案依赖于phantomjs,请假设我不知道如何使用它。webshot是我发现的另一个包,它甚至包含一个install_phantomjs()函数,但据我所知,它要求您首先将输出转换为Shiny对象。
我的问题实际上是this one的副本,这不是this one的副本,因为这是如何在Rmarkdown中嵌入html输出,而不是将其另存为硬盘驱动器上的文件。
我也发现了这个悬而未决的问题,这也基本相同。
编辑:正如@hrbrmstr 和其他许多人所指出的,雷达图并不总是最好的可视化工具。我发现自己需要为这份报告制作一份。
答案竟然在webshot包裹里。@hrbrmstr 提供了以下代码,该代码将在我在问题中发布的代码的末尾运行:
# If necessary
install.packages("webshot")
library(webshot)
install_phantomjs()
# Main code
myChart$save("/tmp/rcharts.html")
webshot::webshot("/tmp/rcharts.html", file="/tmp/out.png", delay=2)
Run Code Online (Sandbox Code Playgroud)
这会将绘图html作为png.
然后我可以ReporteRs使用addImage(mydoc, "/tmp/out.png").
| 归档时间: |
|
| 查看次数: |
4670 次 |
| 最近记录: |