You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:39:01