4

ドキュメント数に関連するグラフ上の円で世界地図を作成できるようにしたいと考えています。

これは mapBubbles を使用して実行しようとしましたが、グラフをプロットすると何か問題が発生します。

私が持っているデータファイルは次のとおりです。

ISO3V10   Country   No of Documents    Lat  Lon
ARG     Argentina   41          -64 -34
AUS     Australia   224         133 -27
CAN     Canada      426         -95 60
IRL     Ireland 68           -8 53
ITA     Italy             583           12.8333 42.8333
NLD     Netherlands 327          5.75   52.5
NZL     New Zealand 26           174    -41
ESP     Spain             325            -4  40
GBR     United Kingdom  2849             -2 54
USA     United States   3162            -97 38

私が書いたコードは以下のとおりです。

# Thanks to Andrie for the reproducible code and Paolo for the suggested edit

zz <-"ISO3V10   Country No.of.Documents Lat  Lon
ARG Argentina   41  -64 -34
AUS Australia   224 133 -27
CAN Canada  426 -95 60
IRL Ireland 68  -8  53
ITA Italy   583 12.8333 42.8333
NLD Netherlands 327 5.75    52.5
NZL 'New Zealand' 26  174 -41
ESP Spain   325 -4  40
GBR 'United Kingdom'  2849    -2  54
USA 'United States'   3162    -97 38
"

dF2 <- read.table(textConnection(zz), header = TRUE)

# dF2 <- read.delim(file="C:\\Users\\js207963\\Documents\\noofpublications_AllUpdated.txt", header = TRUE, sep = "\t")
 dF2[]
 par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i")
 mapBubbles(dF2=getMap(), nameZSize="No.of.Documents", nameZColour="Country",oceanCol="lightblue", landCol="wheat", addLegend=FALSE

質問は、コードを修正してデータを正しくプロットするのを手伝ってもらえますか?

乾杯、ジェス

4

2 に答える 2

6

ggplot次を使用してこれをプロットできます。

ここに画像の説明を入力

データを再作成します。

dat <- read.table(text="
ISO3V10   Country   'No of Documents'    Lat  Lon
ARG     Argentina   41          -64 -34
AUS     Australia   224         133 -27
CAN     Canada      426         -95 60
IRL     Ireland 68           -8 53
ITA     Italy             583           12.8333 42.8333
NLD     Netherlands 327          5.75   52.5
NZL     'New Zealand' 26           174    -41
ESP     Spain             325            -4  40
GBR     'United Kingdom'  2849             -2 54
USA     'United States'   3162            -97 38
", header=TRUE)

パッケージをロードしてプロットします。

library(ggplot2)
library(maps)

mdat <- map_data('world')

str(mdat)
ggplot() + 
  geom_polygon(dat=mdat, aes(long, lat, group=group), fill="grey50") +
  geom_point(data=dat, 
             aes(x=Lat, y=Lon, map_id=Country, size=`No.of.Documents`), col="red")
于 2012-05-25T09:25:05.737 に答える
1

mapBubblesデータ フレームは SpatialPolygonsDataFrame ではないため、関数にもう少し情報を渡す必要があります。以下はうまくいくはずです(あなたは間違ったラベルを付けLatられているLonかもしれません):

 mapBubbles(dF=dF2, nameZSize="No.of.Documents",
  nameZColour="Country",oceanCol="lightblue", landCol="wheat",
  addLegend=FALSE, nameX = "Lat", nameY = "Lon")

上記のnameXnameYは、バブルをプロットする場所を示すために関数に渡されます。さらに、 への呼び出しの代わりにdF2、引数にデータ フレームを渡します。dFgetMap()

編集:

Andrieの回答も気に入っていますggplot2(とりわけ、スペースは下の図よりもうまく使用されています)が、特に を使用して他の質問を投稿したので、rworldmapそのパッケージに固執するのが適切だと思いました.

泡のある世界地図

于 2012-05-25T09:13:44.597 に答える