3

世界地図でいくつかの地理データを視覚化する必要があります。Flowing Data の大円マッピング チュートリアルを学習しましたが、結果がおかしいようです。次のようなものです。

結果はこちら

どうやら、これらの交差する絵の線を避ける必要があるようです。しかし、どうすればそれを行うことができますか? マップをプロットするコードは次のとおりです。

map("world", col="#f2f2f2", fill=TRUE, bg="white",lwd=0.05) 
for (j in 1:length(location$lon)) {
 inter <- gcIntermediate(c(lon_nj, lat_nj), c(location$lon[j], location$lat[j]),      n=100, addStartEnd=TRUE)
lines(inter, col="black", lwd=0.8)
}

そして、gpe Automating great-circle map production in Rが提供するコードを試してみました

 map("world", col="#f2f2f2", fill=TRUE, bg="white",lwd=0.05) 
 for (j in 1:length(location$lon)) {
 inter <- clean.Inter(c(lon_nj, lat_nj), c(location$lon[j], location$lat[j]),n=100, addStartEnd=TRUE)
  lines(inter, col="black", lwd=0.8)
 }

結果は次のようになります。 インタークリア方式

そして、必要な場所に到達するために最短距離を使用したいだけです。

そして、greatCircle() のような別の関数を使用するような Web からの回答も、私の目標を実現できませんでした。

では、この目的を実現する方法を知っている人はいますか?

どうもありがとうございました!!

4

1 に答える 1

2

1 つのオプションは、太平洋を中心とし、大西洋を分割するマップに切り替えることです。これが一番見やすいかもしれません。

別のオプションは、inter オブジェクト (おそらく x と y のリストですが、使用されている正確な関数に精通していません) を調べて、x 座標が増加または減少する傾向があるかどうかを確認することです。彼らが突然反対方向にジャンプする場所を探し、そこに NA を挿入します (y 値の同じ場所に)。プロット全体を横切る線は表示されません。それが機能しない場合は、ポイント間の距離がしきい値を超える場所に NA を挿入できます。

もう 1 つの簡単なアイデアとしては、線の代わりに点をプロットしpoints(inter, pch='.')、lines コマンドの代わりに使用します (各曲線に使用する点の数にもよります)。

于 2013-06-29T16:52:54.990 に答える