R Webshot jpeg图像是空白的

时间:2016-06-22 19:47:23

标签: r pivot-table rpivottable

我想在Shiny中获取rPivotTable的截图图片。我正在使用来自htmlwidgets的saveWidget()来保存rpivottable。然后我想使用webshot()将html转换为jpeg图像。 从saveWidget生成的html在Firefox中正确显示,但是从webshot生成的图像是空白的。我附上了webshot生成的图像。 myPivot.jpeg

以下是我正在使用的示例代码

library(rpivotTable)
library(htmlwidgets)
library(webshot)
mypivot <- rpivotTable(mtcars, rows = "cyl", cols = "mpg")

saveWidget(mypivot, "myPivot.html", selfcontained = FALSE)

webshot(url = "myPivot.html", file = "myPivot.jpeg")

然后我尝试使用How to save Leaflet in RStudio map as png or jpg file?中的一个解决方案 我仍然只是输出空白图像。下面是生成的图像(完全空白) RPlot.png

以下是我正在使用的代码。

library(leaflet)
library(htmlwidgets)
library(webshot)

## create map
m <- leaflet() %>% addTiles()

## save html to png
saveWidget(m, "temp.html", selfcontained = FALSE)
webshot("temp.html", file = "Rplot.png",
        cliprect = "viewport")

以下是关于我的R Session的信息。我正在使用RStudio。

R> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[2] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    
attached base packages:
[2] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[2] rpivotTable_0.1.5.20 htmlwidgets_0.6      mapview_1.1.0        leaflet_1.0.1        webshot_0.3          htmltools_0.3.5     
loaded via a namespace (and not attached):
 [2] Rcpp_0.12.5         RColorBrewer_1.1-2  plyr_1.8.4          R.methodsS3_1.7.1   R.utils_2.3.0       viridis_0.3.4       base64enc_0.1-3    
 [8] iterators_1.0.8     tools_3.2.2         gdalUtils_2.0.1.7   digest_0.6.9        viridisLite_0.1.3   satellite_0.2.0     lattice_0.20-33    
[15] jsonlite_0.9.22     gtable_0.2.0        png_0.1-7           foreach_1.4.3       shiny_0.13.2        DBI_0.4-1           yaml_2.1.13        
[22] rgdal_1.1-10        parallel_3.2.2      gridExtra_2.2.1     dplyr_0.4.3         httr_1.1.0          raster_2.5-8        stats4_3.2.2       
[29] grid_3.2.2          R6_2.1.2            plotly_3.6.0        sp_1.2-3            latticeExtra_0.6-28 tidyr_0.4.1         ggplot2_2.1.0      
[36] magrittr_1.5        scales_0.4.0        codetools_0.2-14    assertthat_0.1      mime_0.4            xtable_1.8-2        colorspace_1.2-6   
[43] httpuv_1.3.3        munsell_0.4.3       R.oo_1.20.0

2 个答案:

答案 0 :(得分:1)

您应该考虑在https://github.com/rstudio/webshot2上尝试使用webshot2,而不要使用webshot。我准备了一篇博客文章,其中包含有关webshot2的各种详细信息。您可以从此处查看详细信息。另外,请参阅我有关webshot和webshot2的问题的详细解答。

我已经用webshot2复制了您的方案。考虑到在webshot2中文件扩展名必须为“ png”或“ pdf”;因此,它也被修改。

代码

library(rpivotTable)
library(htmlwidgets)
library(webshot2)
mypivot <- rpivotTable(mtcars, rows = "cyl", cols = "mpg")

saveWidget(mypivot, "myPivot.html", selfcontained = FALSE)

webshot(url = "myPivot.html", file = "myPivot.png")

输出文件 enter image description here

答案 1 :(得分:0)

迟来的回应!

以下适用于我:

library(rpivotTable)
library(htmlwidgets)

savedPivot <- "savedPivot.html"
rpivotTable(iris)   
saveWidget(rpivotTable(iris),file.path(normalizePath(dirname(savedPivot)),basename(savedPivot)))

(基于@malcook回答SO here