从rCharts保存到图像文件

时间:2013-08-07 12:38:52

标签: r leaflet rcharts

我想知道是否有办法将使用rCharts生成的图表保存到文件(作为图像)。特别是,我想将使用'leaflet'生成的地图保存到文件中。

例如,可以使用以下方法生成样本图:

require(rCharts)
L1 <- Leaflet$new()
L1$set(width = 1600, height = 800)
L1$setView(c(0,0), 3)
L1 

这会在浏览器中打开一个地图。现在,我可以右键单击地图并选择“保存图像”,但这只会保存地图的一个图块。我想将整个地图保存到文件,并使用一些代码自动化(而不是手动单击并保存),因为我需要在循环中运行该过程。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我不了解rCharts,但您可以使用Leaflet.print plugin打印到静态文件。

答案 1 :(得分:0)

这已经有好几年了,但我偶然发现它为自己寻找解决方案。我最终根据我看到的其他一些东西创建了一个。

你可以这样做,但必须分成几个步骤:

  1. 首先,像在rCharts中一样运行你的情节。确保独立选项= TRUE
  2. 接下来,将该图保存为独立的html文件
  3. 接下来,在本地系统上使用phantomjs和rasterize.js将刚创建的html文件呈现为图像文件
  4. 最后,插入您的图片文件
  5. 对于下面的代码,假设您的rCharts图已经创建为&#39; myplot&#39;

    $(document).ready(function(){
        function ctaDropMenu() {
          document.getElementById("myDropdown").classList.toggle("show");
        }
    
        $(".dropbtn").click(ctaDropMenu);
    
        // Close the dropdown if the user clicks outside of it
        window.onclick = function(event) {
          if (!event.target.matches('.dropbtn')) {
    
            var dropdowns = document.getElementsByClassName("dropdown-content");
            var i;
            for (i = 0; i < dropdowns.length; i++) {
              var openDropdown = dropdowns[i];
              if (openDropdown.classList.contains('show')) {
                openDropdown.classList.remove('show');
              }
            }
          }
        }
    });
    

    然后使用tmpPngFile插入到您的文档中