0

rworldmapデータを表示する世界地図を作成するために使用しています。私のデータでは、小さな島国は非常に重要ですが、小さすぎて世界全体が表示されたときに確認できません。そのため、代わりに適切なカテゴリの色で島国の場所に小さな点/円を表示したいと思います. 私は周りを見回しましたが、これに対する解決策は見つかりませんでした。もちろん、すべての島国に対してこれを手動で行うこともできます。私の質問は、より迅速な解決策はありますか?

rworldmap例として、パッケージに付属しているデータ (この場合は生物多様性) をプロットするための標準的な例を次に示します。この地図で、島国をどのように表示できますか? どんな提案でもいただければ幸いです!

library(rworldmap)
mapCountryData()
data("countryExData",envir=environment(),package="rworldmap")
sPDF <- joinCountryData2Map(countryExData
              , joinCode = "ISO3"
              , nameJoinColumn = "ISO3V10"
              )
mapCountryData( sPDF
              , nameColumnToPlot="BIODIVERSITY" 
              )
4

1 に答える 1

0

lmo私を正しい方向に向けてくれてありがとう、私は解決策を見つけました。再現可能な例を含めて、ここで回答を提供します。また、十分に明確にしなかった質問について、もう 1 つ説明する必要があると思います。世界のすべての国をプロットして世界地図を作成したい. 次に、島国が見えるようにドットを追加します。私が見つけた解決策は、最初に通常の世界地図をプロットし、次に最初のプロットに 2 番目のマップを追加することでしたが、lmo.

まず、基本的なプロットを作成するためのコードをもう一度示します。

par(mar=c(0,0,1,0))
data("countryExData",envir=environment(),package="rworldmap")
sPDF <- joinCountryData2Map(countryExData, joinCode = "ISO3", nameJoinColumn = "ISO3V10")
mapCountryData( sPDF, nameColumnToPlot="BIODIVERSITY", catMethod="fixedWidth")

ここでは、島は見えません。単に小さすぎます。次に、これらの島国のみのデータセットを生成する必要があります。それらはデータセットに含まれていないため、やりたいことを示すために、いくつかの島国を選択し、他のデータセットからいくつかのデータを再利用しました。したがって、ここでのデータは実際のデータではありません。

mapdata2 <- data.frame(ccode=c("ATG", "COM", "CPV", "DMA", "FJI", "FSM",
     "GRD", "KIR", "KNA", "LCA", "MDV", "MHL", "MUS", "NRU","PLW", "SLB", 
     "STP", "SYC", "TON", "TUV", "VCT", "VUT", "WSM"), 
     biodiv=countryExData$BIODIVERSITY[1:23], size=1)

すべての島ポイントが同じサイズになるように、最後のサイズ変数が必要です。コマンドを使用して、mapBubbles次のように、選択した島国のドットを元のプロットに追加できます。

sPDF2 <- joinCountryData2Map(mapdata2, joinCode = "ISO3", nameJoinColumn = "ccode")
mapBubbles(sPDF2,nameZSize='size', nameZColour='biodiv',add = T, 
     addColourLegend = F, addLegend = F, pch=21, symbolSize=.22,catMethod="fixedWidth")

これにより、以下のマップが作成されました。おそらくもっと良い方法やより速い方法があるでしょうが、今の結果にはかなり満足しています。もちろん、色やシンボルのサイズなどを変更できるようになりました...

ここに画像の説明を入力

于 2016-09-27T10:06:35.640 に答える