2

球上にいくつかの点をプロットする必要があるプロジェクトに取り組んでいます。私が持っているのは、各ポイントの経度と緯度、および各ポイントの値です。例えば、

longitude latitude value
123       23       1.3
75        -34      2.8
190       48       2.1
...      

次のようなプロットが必要です。また、ポイントのサイズをデータセットの値に比例させたいと思います。したがって、2.8のポイントは大きくなり、1.3のポイントは小さくなります。ワールドマップはオプションです。

この仕事をすることができるRのパッケージがあるのだろうか?任意の提案やコードは大歓迎です!

ここに画像の説明を入力してください

4

3 に答える 3

7

baseプロットとパッケージを使用した簡単な例sprgdalおよび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

ここに画像の説明を入力してください

于 2013-03-14T16:08:27.473 に答える
6

多分それをする方法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")

これにより、残念ながらいくつかの不具合があり、次のマップが得られます。

ここに画像の説明を入力してください

coord_mapちなみに、地図を描かなくても使えます:

ggplot() +
  geom_point(data=d, aes(x=longitude, y=latitude, size=value), color="red") +
  coord_map("mollweide")

ここに画像の説明を入力してください

于 2013-03-14T15:59:27.793 に答える
2

mapprojパッケージを見てください。それはあなたのために様々な地図投影を行います。プロットは行いませんが、ポイントを投影して、選択した関数に渡します。

于 2013-03-14T16:16:46.640 に答える