geom_label_repel 和 geom_label 的图例错误
Wrong legend with geom_label_repel and geom_label
我在 ggplot 地图中使用 geom_point、geom_label 和 geom_label_repel 用不同变量标记地图。
一切正常,但遗憾的是我无法为 geom_label_repel(蓝色标签)添加图例,我尝试使用:scale_fill_manual,但没有解决我的问题,我的代码示例和问题:
library(ggplot2)
library(maps)
library(ggrepel)
county_df <- map_data('county')
ny <- subset(county_df, region=="new york")
ny <- ny[c(1:10, 30:40),]
ggplot(ny, aes(long, lat, group=group)) +
geom_polygon(colour='black', fill=NA)+
geom_point(data = ny, aes(long, lat, size=group, color=order))+
geom_label_repel(data = ny, aes(long, lat, label=subregion),
fill = "#0033FF", box.padding = unit(.8, "lines"))+
geom_label(data = ny, aes(long+.01, lat+.05, label=region,
fill="#FF3399"), colour = "White", fontface = "bold")+
scale_fill_manual("Variable:", values=c("#FF3399", "#0033FF"),
labels = c('Region', "Subregion"))
这个命令给了我这张地图,你只能看到粉红色标签(区域)的图例,而不是蓝色标签(子区域)的图例:
我尝试使用命令:show.legend = T,但遗憾的是,这给了我一个错误的 geom_point(组)图例,并且没有显示蓝色标签(子区域)的图例。这个命令是:
ggplot(ny, aes(long, lat, group=group)) +
geom_polygon(colour='black', fill=NA)+
geom_point(data = ny, aes(long, lat, size=group, color=order))+
geom_label_repel(data = ny, aes(long, lat, label=subregion),
fill = "#0033FF", box.padding = unit(.8, "lines"),
show.legend = T)+
geom_label(data = ny, aes(long+.01, lat+.05, label=region,
fill="#FF3399"), colour = "White", fontface = "bold")+
scale_fill_manual("Variable:", values=c("#FF3399", "#0033FF"),
labels = c('Region', "Subregion"))
此地图:
看起来你的 fill
次区域审美超出了它的 aes()
所以它在技术上不是 'mapped' 因此没有出现在指南中。以下解决了我认为的问题:
library(ggplot2)
library(maps)
library(ggrepel)
county_df <- map_data('county')
ny <- subset(county_df, region=="new york")
ny <- ny[c(1:10, 30:40),]
ggplot(ny, aes(long, lat, group = group)) +
geom_polygon(colour = 'black', fill = NA) +
geom_point(data = ny, aes(long, lat, size = group, color = order)) +
geom_label_repel(
data = ny,
aes(long, lat, label = subregion, fill = "#0033FF"),
box.padding = unit(.8, "lines")
) +
geom_label(
data = ny,
aes(long + .01, lat + .05, label = region, fill = "#FF3399"),
colour = "White",
fontface = "bold"
) +
scale_fill_manual(aesthetics = "fill",
"Variable:",
values = c("#FF3399", "#0033FF"),
labels = c('Region', "Subregion")
)
我在 ggplot 地图中使用 geom_point、geom_label 和 geom_label_repel 用不同变量标记地图。
一切正常,但遗憾的是我无法为 geom_label_repel(蓝色标签)添加图例,我尝试使用:scale_fill_manual,但没有解决我的问题,我的代码示例和问题:
library(ggplot2)
library(maps)
library(ggrepel)
county_df <- map_data('county')
ny <- subset(county_df, region=="new york")
ny <- ny[c(1:10, 30:40),]
ggplot(ny, aes(long, lat, group=group)) +
geom_polygon(colour='black', fill=NA)+
geom_point(data = ny, aes(long, lat, size=group, color=order))+
geom_label_repel(data = ny, aes(long, lat, label=subregion),
fill = "#0033FF", box.padding = unit(.8, "lines"))+
geom_label(data = ny, aes(long+.01, lat+.05, label=region,
fill="#FF3399"), colour = "White", fontface = "bold")+
scale_fill_manual("Variable:", values=c("#FF3399", "#0033FF"),
labels = c('Region', "Subregion"))
这个命令给了我这张地图,你只能看到粉红色标签(区域)的图例,而不是蓝色标签(子区域)的图例:
我尝试使用命令:show.legend = T,但遗憾的是,这给了我一个错误的 geom_point(组)图例,并且没有显示蓝色标签(子区域)的图例。这个命令是:
ggplot(ny, aes(long, lat, group=group)) +
geom_polygon(colour='black', fill=NA)+
geom_point(data = ny, aes(long, lat, size=group, color=order))+
geom_label_repel(data = ny, aes(long, lat, label=subregion),
fill = "#0033FF", box.padding = unit(.8, "lines"),
show.legend = T)+
geom_label(data = ny, aes(long+.01, lat+.05, label=region,
fill="#FF3399"), colour = "White", fontface = "bold")+
scale_fill_manual("Variable:", values=c("#FF3399", "#0033FF"),
labels = c('Region', "Subregion"))
此地图:
fill
次区域审美超出了它的 aes()
所以它在技术上不是 'mapped' 因此没有出现在指南中。以下解决了我认为的问题:
library(ggplot2)
library(maps)
library(ggrepel)
county_df <- map_data('county')
ny <- subset(county_df, region=="new york")
ny <- ny[c(1:10, 30:40),]
ggplot(ny, aes(long, lat, group = group)) +
geom_polygon(colour = 'black', fill = NA) +
geom_point(data = ny, aes(long, lat, size = group, color = order)) +
geom_label_repel(
data = ny,
aes(long, lat, label = subregion, fill = "#0033FF"),
box.padding = unit(.8, "lines")
) +
geom_label(
data = ny,
aes(long + .01, lat + .05, label = region, fill = "#FF3399"),
colour = "White",
fontface = "bold"
) +
scale_fill_manual(aesthetics = "fill",
"Variable:",
values = c("#FF3399", "#0033FF"),
labels = c('Region', "Subregion")
)