R语言ggplot中白色geom_point图中正常但图例无黑边如何解决
解决方法
你当前的写法叠了两层geom_point,第二层仅添加描边但未关联美学映射,因此图例无法继承第二层的描边设置。你可以统一使用支持填充+描边的shape 21点型,仅将填充色fill映射到地点变量,描边色固定为全局黑色即可,修改后的完整代码如下:
library(ggplot2) set.seed(321) dat <- data.frame(matrix(ncol = 3, nrow = 6)) x <- c("Location","Month", "Value") colnames(dat) <- x dat$Location <- c("North","North","North","South","South","South") dat$Month <- rep(c(1,2,3),2) dat$Value <- rnorm(6,20,5) cols <- c("South" = "black", "North" = "white") ggplot(data = dat, aes(x = Month, y = Value, group = Location)) + # 仅映射fill到Location,固定shape为21、描边为黑色 geom_point(aes(fill = Location), size = 3, shape = 21, color = "black") + # 替换为fill的手动色阶 scale_fill_manual(values = cols) + theme_bw() + theme(panel.grid = element_blank(), text = element_text(size = 16), axis.text.x = element_text(size = 14, color = "black"), axis.text.y = element_text(size = 14, color = "black"), legend.title = element_blank(), legend.text = element_text(size = 16, color = "black"), legend.position = c(0.1,0.1), legend.key = element_blank(), legend.background = element_blank())
修改后图例和画布上的点会保持样式一致,North对应的白色点默认自带黑色描边,无需手动额外添加图例元素。
内容的提问来源于stack exchange,提问作者tassones
相关产品推荐
相关产品推荐

