在 geom 中指定数据时在地图上组合图例
Combine legends on a map when data is specified in a geom
我正在使用 ggplot2
绘制地图并在地图上点。这包括绘制地图,然后使用 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")
如 this question (and also 中所述)这通常可以通过对两个尺度使用相同的 name
和 labels
值来实现,但是我不确定当数据不正确时如何应用它在主 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"))
如何组合图例?
你得到了多个图例,因为你在 aes
中有多个参数。在您的示例中,唯一因变量而异的美学是 size
,其余(color
和 alpha
)不需要映射。
这个:
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)
会给你一个图例,已经合并了。
我正在使用 ggplot2
绘制地图并在地图上点。这包括绘制地图,然后使用 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")
如 this question (and also name
和 labels
值来实现,但是我不确定当数据不正确时如何应用它在主 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"))
如何组合图例?
你得到了多个图例,因为你在 aes
中有多个参数。在您的示例中,唯一因变量而异的美学是 size
,其余(color
和 alpha
)不需要映射。
这个:
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)
会给你一个图例,已经合并了。