2016-05-29 10 views
-1

アルファベットからshpファイルを読み込んでプロットして、カスタムchoroplethを作成しようとしています。このマップをロードしてプロットするために、まさにすべてのコード例に従っていますが、何も機能していません。SHPファイルのプロットR

Rの赤い記号は、Rのように処理していますが、何もプロットしたり、動作を停止することはありません。

これは私が "plot"を実行し、Rstudioが動作を停止したと言う私の画面です。それがなぜ機能しないのだろうか?

enter image description here

+0

Screenshots!=コードスニペット。画像を削除し、代わりにコードを投稿してください。 – hrbrmstr

答えて

1

まず、ggplot2はかなりよく、これを処理することができるようだ:

library(rgdal) 
library(ggplot2) 

arg_shp <- readOGR("../data/arg_adm/ARG_adm1.shp", "ARG_adm1") 

arg_shp_map <- fortify(arg_shp) 

gg <- ggplot() 
gg <- gg + geom_map(data=arg_shp_map, map=arg_shp_map, 
        aes(long, lat, map_id=id), 
        color="#2b2b2b", size=0.15, fill=NA) 
gg <- gg + coord_map() 
gg <- gg + ggthemes::theme_map() 
gg 

enter image description here

あなたはGADMファイルを使用しているので、あなたが本当に外部のシェープファイルのカントーを使用する必要はありません、ちょうどgetData()使用:

library(maptools) 
library(raster) 

arg_adm <- getData('GADM', country='ARG', level=1) 
arg_adm_map <- fortify(arg_adm) 

(上記作品から同じggplot2コードを、単に変数名外サブ)。

これをプロットするためのベースプロットシステム(グラフィックデバイス上)は得られません。私は海岸線の一部に複雑な多角形があると思います。あなたが境界線を必要とする場合を除き

library(maptools) 
library(raster) 
library(rgeos) 
library(magrittr) 
library(sp) 

arg_adm <- getData('GADM', country='ARG', level=1) 

gSimplify(arg_adm, 0.01, topologyPreserve=TRUE) %>% 
    SpatialPolygonsDataFrame([email protected]) -> new_arg 

plot(new_arg, lwd=0.25) 

enter image description here

(基本プロットのデフォルトの余白とそれが突起を扱う方法は、異なるサイズのマップにつながる):私たちはかなり簡単カントーそれに対処することができますこのようなシェイプファイルを単純化することで、プロット時間を大幅に節約することができます。あなたはアルゼンチンに合わせた地図投影とともに、同様ggplot2に最適化された形状を使用することができます。

new_arg_map <- fortify(new_arg) 

gg <- ggplot() 
gg <- gg + geom_map(data=new_arg_map, map=new_arg_map, 
        aes(long, lat, map_id=id), 
        color="#2b2b2b", size=0.15, fill=NA) 
gg <- gg + ggalt::coord_proj("+proj=aeqd +lat_0=-37.869859624840764 +lon_0=-66.533203125") 
gg <- gg + ggthemes::theme_map() 
gg 

enter image description here

を(ただし、coord_map()のデフォルトメルカトル図法の用途で十分なpbly GDです)

+0

あなたの時間と労力のために多くのおかげで、あなたは本当に私をたくさん助けてくれました。私は1つの質問を持っていますが、私はこのマップを使用しています。そして、あなたのプロットのような境界線をロードするとうまくいきます。しかし、私はいくつかのデータを追加しようとすると、それはグラフィックをプロットする前に、負荷(5分)に時間がかかります。 (puntos $ Provincia) arg_pv < - fortify(arg_shp、region = "")このコードを使用して、このコードを使用してpuntos < - read.csv( "puntos.csv"、sep = "、"、 "NAME_1")ggplot()+ geom_map(データ= puntos、aes(map_id = Provincia、fill = Puntos)、map = arg_pv)+ expand_limits(x = arg_pv $ long、y = arg_pv $ lat) –

0

は、私の知る限りでは、maptoolsを使用してSHPを読みとりうるが、そのサポートが限られています。あなたはrgdal::readOGR(dir, layer)を使ってそれを読んだことがありますか?

[環境]ウィンドウには、「大きな」オブジェクトがありますが、そのサイズはどれくらいですか?図形が国境や国境の場合は問題ありませんが、すべての道路や国のすべてのブロックが形になっていれば、物事が変わります。

単体テストを試してみましょう:国際境界線または国境をプロットしてみてください。あなたがそれを行うことができれば、問題は形状のサイズになります。

PD:再起動して再度試してみると、Rstudioが実行中の唯一のプログラムである場合に役立ちます。