如何在R中将图片作为数据点添加到地图上

4

我正在使用R语言的maps包来绘制简单的地理地图,然后将我的数据点放入其中。

我的问题是,在R语言中是否有一种方式可以用感兴趣的图片来表示数据点,例如我在我的示例中使用的动物。

这只是为了更好地向读者展示我的数据点相对于彼此的分布。

3个回答

4

您也可以使用grid包。 grid.raster可用于放置一些图片。

由于maps是图形基础包,您需要使用gridBase来结合网格/基础图形。

这里是一个例子:

library(maps)
map('usa',boundary=T,fill=T,col='grey')
library(gridBase)
library(grid)
library(png)
vps <- baseViewports()
pushViewport(vps$figure,vps$plot)
camel <- readPNG("camel.png")    ## some animal picture
grid.rect(gp = gpar(fill=NA))

x <- c(-110,-100,-70)
y <- c(30,40,40)

grid.raster(image=camel,x=x,y=y,width=5,   ## it is vectorized
            interpolate=FALSE,default.units = 'native')
upViewport(1)

在这里输入图片描述

提示:我不确定美国是否有骆驼。


那里,我知道肯定有比我的答案更好的方法! :-) - Carl Witthoft
@CarlWitthoft,这实际上是相同的概念,但使用了grid包。 - agstudy

2

rasterImage是一种方式,虽然有些费力。一旦你将感兴趣的图片格式化为光栅对象,你就可以将它们放置在指定的位置(和框架大小)内部你的绘图区域。


1
除了@CarlWitthoft提到的rasterImage函数之外,还有来自TeachingDemos包的my.symbolsms.image的组合,用于向绘图(基础图形)中添加图像。 rasterImage方法提供了最大的控制力,但my.symbols更像常规绘图函数,您可以在这些坐标处绘制图像(并设置其他选项以指定大小等)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接