我正在开展一个项目,我需要在球体上绘制一些点.我所拥有的是每个点的经度和纬度,以及每个点的值.例如,
longitude latitude value
123 23 1.3
75 -34 2.8
190 48 2.1
...
Run Code Online (Sandbox Code Playgroud)
我想要一个如下的情节.我还希望点的大小与数据集中的值成比例.所以2.8将有一个更大的点,1.3将有一个更小的点,等等.世界地图是可选的.
我想知道R中是否有任何可以完成这项工作的软件包?任何建议或代码都非常感谢!

使用base绘图和包的简单示例sp,rgdal以及maptools:
library(sp)
library(maptools)
library(rgdal)
xy <- data.frame(lon=c(-130,110,3,45),lat=c(60,-10,50,30)) #Some coordinates
value <- data.frame(value=c(1.5,0.8,2.3,2)) #Some values for the point size
df <- SpatialPointsDataFrame(xy,value,proj4string=CRS("+proj=lonlat"))
dfMoll <- spTransform(df, CRS("+proj=moll")) #Mollweide projection of the data
data(wrld_simpl) # A base world map
wrld_moll <- spTransform(wrld_simpl, CRS("+proj=moll")) # ... that we projects as well
plot(wrld_moll) #... and plot
points(dfMoll, cex=dfMoll$value, pch=20, col="red") #...with our data points
Run Code Online (Sandbox Code Playgroud)

也许是一种方法ggplot2:
ggplot() +
geom_polygon(data=world,aes(x=long, y=lat, group=group), fill=NA,colour="black") +
geom_point(data=d, aes(x=longitude, y=latitude, size=value), color="red") +
coord_map("mollweide")
Run Code Online (Sandbox Code Playgroud)
这给出了以下地图,不幸的是有一些故障:

coord_map顺便说一下,您可以在不绘制地图的情况下使用:
ggplot() +
geom_point(data=d, aes(x=longitude, y=latitude, size=value), color="red") +
coord_map("mollweide")
Run Code Online (Sandbox Code Playgroud)
