1

目前我正在处理样本数据,我想在其中显示特定纬度和经度的度量值。

数据如下:

count   latitude    longitude
1   -33.9742299 -59.2025543
1   -32.1833305 -64.4166718
1   40.069099   45.038189
0   43.1708104  -76.2904452
4   51.3105976  4.2649749
3   50.5296991  5.2614551
2   -22.9748764 -44.3036414
6   43.7755615  23.7246154
4   53.1732661  -112.0334845
4   46.315255   -63.325855
0   50.9302435  -113.986716
1   46.402735   -72.274846
0   49.224312   -122.9865026
4   43.8384117  -79.0867579
1   45.0679663  -66.4535262
2   23.132191   113.266531
0   19.912026   109.690508
1   30.4783192  120.9239947
0   39.084158   117.200983
4   49.0812519  16.1921789

library(plotGoogleMaps)
coordinates(nuc)<-~longitude+latitude
proj4string(nuc) <- CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ')
pltmap<-plotGoogleMaps(nuc,filename='firstmp.htm', zcol='count'
                  , draggableMarker=FALSE, colPalette=c('#DC143C', '#FFD700', '#00FF00'))

来自github的参考-

现在我想将地图输出打印为 pdf。

检查了 pdf 功能,但它不适用于此。不确定“wkhtmltopdf”,因为它是其他工具。

请帮助我获得pdf格式的输出。

谢谢,科门

4

1 回答 1

3

这是使用该ggmap软件包的可能替代解决方案:

nuc <- read.table(text="count   latitude    longitude
1   -33.9742299 -59.2025543
1   -32.1833305 -64.4166718
1   40.069099   45.038189
0   43.1708104  -76.2904452
4   51.3105976  4.2649749
3   50.5296991  5.2614551
2   -22.9748764 -44.3036414
6   43.7755615  23.7246154
4   53.1732661  -112.0334845
4   46.315255   -63.325855
0   50.9302435  -113.986716
1   46.402735   -72.274846
0   49.224312   -122.9865026
4   43.8384117  -79.0867579
1   45.0679663  -66.4535262
2   23.132191   113.266531
0   19.912026   109.690508
1   30.4783192  120.9239947
0   39.084158   117.200983
4   49.0812519  16.1921789", header=TRUE, stringsAsFactors=FALSE)

library(ggmap)
library(ggthemes)

gmap <- get_map(location=c(longitude=mean(nuc$longitude), 
                           latitude=mean(nuc$latitude)), 
                zoom=3)

gg <- ggmap(gmap)
gg <- gg + geom_point(data=nuc, aes(x=longitude, y=latitude, size=count, fill=count), 
                      shape=21, color="black")
gg <- gg + scale_fill_distiller(palette="Reds")
gg <- gg + theme_map()
gg <- gg + theme(legend.position="right")
gg

这将产生以下内容,您应该可以很容易地在 PDF 中使用这些内容。

在此处输入图像描述

(您可能需要调整缩放级别等,因为我知道有些点没有显示在该缩放级别)

更新

由于我们对美学有意见,我认为plotGoogleMaps情节看起来很糟糕。但是如果你真的想把它作为你努力的展示,你可以使用phantomjs(即你必须安装phantomjs)。在绘制地图后放置它(它依赖于保存的 html 文件):

cat("var page = require('webpage').create();
page.viewportSize = { width: 1280, height: 800 };
page.open('firstmp.htm', function() {
  window.setTimeout(function () {
    page.render('firstmp.png');
    page.render('firstmp.pdf', {format: 'pdf', quality: '100'});
    phantom.exit();
  }, 3000);
});", file="render.js")

system("phantomjs --ignore-ssl-errors=true render.js")

它需要大约 3 秒,因为它必须让地图图块加载。结果是一个 png 和一个 pdf 文件。如果要将 png 放置在 PDF 中,周围有其他分析结果,则可以使用 R markdown。这是它创建的 png(您可以通过更改宽度/高度参数使其成为任意大小:

在此处输入图像描述

您还可以设置一个剪切矩形来摆脱左侧的控件(这是一个非常适合谷歌的答案)。

于 2015-08-15T16:51:11.907 回答