目前,我正在处理样本数据,其中我想显示特定纬度和经度的指标计数。
数据如下:
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格式的输出。
谢谢,凯门
这是使用该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(您可以通过更改width / height参数将其设置为任意大小:
您还可以设置一个裁剪矩形以摆脱左侧的控件(这是一个非常适合Google使用的答案)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句