首页 文章

在geom中指定数据时,在 Map 上组合图例

提问于
浏览
3

我正在使用 ggplot2 绘制 Map 并指向其上方 . 这包括绘制 Map 然后使用 geom_point() 来放置点 . 此外,这些点的大小根据另一个变量而变化 . 当我绘制它时会产生多个图例 .

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

正如this question(以及this one)中所解释的那样,这通常可以通过对两个标度使用相同的 namelabels 值来实现,但我不确定如何在主要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 回答

  • 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)
    

    会给你一个单一的传说,已经结合了 .

相关问题