2017-06-22 6 views
3

ggplot2を使用して、マップとその上にポイントをプロットします。これは、地図をプロットしてから、geom_point()を使用してポイントを配置します。さらに、これらのポイントは、別の変数に基づいてサイズが異なります。これをプロットすると、複数の凡例が生成されます。geomにデータが指定されている場合、凡例をマップに結合

ggplot(mapdata, aes(x=long, y=lat)) + 
geom_map(map=mapdata, aes(map_id=region), fill="#ffffff", color="black", size=0.15) + 
xlim(4, 15) + 
ylim(47, 55) + 
geom_point(data = dat, aes(long, lat, size = feature, alpha = 0.2, colour = "#007f3f")) + 
scale_colour_manual(values = "#007f3f") 

enter image description here

としては、私は、データがされていないときにこれを適用する方法をわからない午前しかし、これは通常、両方のスケールで同一namelabels値を使用することによって達成することができるthis questionで説明(またthis one)プライマリggplotコール(つまり、geomではなく)で指定され、サイズは凡例となります。私はこれについて多くの反復を試みました:

ggplot(mapdata, aes(x=long, y=lat)) + 
    geom_map(map=mapdata, aes(map_id=region), fill="#ffffff", color="black", size=0.15) + 
    xlim(4, 15) + ylim(47, 55) + 
    geom_point(data = dat, aes(long, lat, size = feature, alpha = 0.2, colour = "#007f3f")) + 
    scale_color_manual(name = "feature", values = "#007f3f", labels=c("1.0", "1.5", "2.0", "2.5", "3.0")) + 
    scale_size_manual(name = "feature", values = c(1.0, 1.5, 2.0, 2.5, 3.0), labels=c("1.0", "1.5", "2.0", "2.5", "3.0")) 

どのように凡例を組み合わせることができますか?

答えて

1

aesの中に複数の引数があるため、複数の凡例が表示されます。あなたの例では、変数に基づいて変化する唯一の美学はsizeであり、残りは(coloralpha)である必要はありません。

この:

ggplot(mapdata, aes(long, lat)) + 
    geom_map(map = mapdata, 
      aes(map_id = region), 
      fill="#ffffff", 
      color="black", 
      size=0.15) + 
    geom_point(data = dat, 
       aes(long, lat, size = feature), 
       alpha = 0.2, 
       colour = "#007f3f")+ 
    xlim(4, 15) + 
    ylim(47, 55) 

はすでに組み合わせ、あなたに単一の伝説を与えるだろう。

+0

ニース!ありがとうございました。 –

関連する問題