2017-08-25 18 views
0

ggplotを使用して地図を作成し、データに基づいて異なる領域を塗りつぶす勾配を付けています。ggplotを使って地図の境界線に描画する線が多すぎます

デフォルトでは、境界線が描画されていないマップが描画されています。それらを含めるには、this questionに基づいてコードを記述します。しかし、これは地域のすべての隅を結ぶ線が余りにも多くなったと私は思う。これを避けるにはどうすればいいですか?

以下のコードでは、データファイルはマップ上に表示したいデータが格納されている場所で、Scotはシェイプファイルです。

問題の原因となっている行は、geom_polygonです。

ggplot() + 
    geom_map(data = datafile, aes(map_id = region, fill = datafile$"2007"), map = Scot) + 
    geom_polygon(data = Scot, aes(x = Scot$long, y = Scot$lat), colour = "gray", fill = NA) + 
    expand_limits(x = Scot$long, y=Scot$lat) + 
    scale_fill_gradient(low = ("lightyellow"), high = ("red"), limits = c(0,35000)) + 
    ggtitle("2007") + 
    coord_fixed(1.2) + 
    theme(axis.text.x = element_blank(), axis.text.y = element_blank(), 
    axis.ticks = element_blank(), axis.title.x = element_blank(), 
    axis.title.y = element_blank(), 
    panel.grid.major = element_blank(), panel.grid.minor = element_blank(), 
    panel.border = element_blank(), panel.background = element_blank(), 
    legend.title = element_text(face = "bold"), 
    plot.title = element_text(face = "bold", hjust = 0.5)) 

Example image of the problem

+0

「aes」内に$表記を使用しないでください。これはあなたの問題の原因かもしれません。あなたの列は '2007'と呼ばれ、\' sで囲みます。 –

答えて

1

あなたgeom_polygonラインにgroup = groupを追加してみてください。

... + geom_polygon(data = Scot, aes(x = long, y = lat, group = group), 
        colour = "gray", fill = NA) 

注:リチャード・テルフォードは述べてすでにdata = Scotを介してデータソースを示してきたので、あなたはaes内の$表記を使用する必要はありません、私はスコット・データ・フレームを強化することにより得られたと仮定しましたある種の空間データセットで、常に「グループ」という名前の列が含まれています。それが存在しない場合は、同じポリゴンに属する点を示す列を探します。 geom_polygon状態のヘルプファイル(強調は追加):

ポリゴンが接続されている 始点と終点以外(geom_pathによって描かれるように)パスに非常に類似しており、内部は フィルによって着色されています。 グループの審美によって、どのケースが と一緒にポリゴンに接続されているかが決まります。

+0

ありがとう、これはうまくいきました。 – Megan

関連する問題