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

如何在R的ggplot2气泡图中移除气泡边框但保留图例边框?

解决ggplot2气泡图移除图表气泡边框但保留图例边框的问题

需求说明:用ggplot2制作气泡图时,希望移除图表内气泡的黑色边框,但保留图例中的边框;也可将图表内边框设为白色,达到近似移除的效果。

解决方案1:移除图表气泡边框(透明处理)

将图表中气泡的边框设为透明(NA),同时强制图例保留黑色边框:

library(ggplot2)
library(hrbrthemes)
library(viridis)
library(ggrepel) 

# 创建数据框
data <- data.frame(
  Progetto = c("Progetto primo", "Progetto secondo", "Progetto terzo", "Progetto quarto", "Progetto quinto", 
               "Progetto sesto", "Progetto settimo", "Progetto ottavo", "Progetto nono", "Progetto decimo", 
               "Progetto undicesimo", "Progetto dodicesimo", "Progetto tredicesimo"),
  Impatto = c(2, 5, 3, 3, 8, 3, 5.5, 7, 4, 7, 6, 3, 7.5),
  `Difficoltà tecnica` = c(7.5, 3, 5, 8, 8, 5, 5, 8, 8, 6, 8, 10, 10),
  Durata = c(6.00, 3.00, 6.00, 6.00, 12.00, 6.00, 3.00, 6.00, 12.00, 12.00, 18.00, 24.00, 36.00)
)

# 制作气泡图
ggplot(data, aes(
  x = Impatto, 
  y = `Difficoltà tecnica`, 
  size = Durata, 
  fill = Progetto, 
  label = Progetto
)) +
  geom_point(alpha = 0.7, shape = 21, color = NA) + # 图表气泡设为透明边框
  geom_text_repel(
    size = 3.5, 
    show.legend = FALSE, 
    box.padding = 0.7, 
    point.padding = 0.7, 
    max.overlaps = Inf 
  ) +
  scale_size(range = c(3, 10), name = "Durata (Mesi)") +
  scale_fill_viridis(discrete = TRUE, option = "A", guide = FALSE) +
  labs(
    title = "Diagramma a Bolle con Viridis",
    x = "Impatto",
    y = "Difficoltà Tecnica"
  ) +
  expand_limits(x = c(0, 11), y = c(4, 11)) +
  theme_ipsum() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    axis.title = element_text(size = 12)
  ) +
  guides(size = guide_legend(override.aes = list(color = "black"))) # 强制图例保留黑色边框

解决方案2:将图表气泡边框设为白色

如果需要白色边框匹配背景,仅修改geom_point的color参数为"white",其余代码与方案1一致:

# 仅修改geom_point部分
geom_point(alpha = 0.7, shape = 21, color = "white") + # 图表气泡设为白色边框

关键修改说明

  • 原代码中geom_point(color = "black")会同时作用于图表和图例的气泡边框,改为NA或"white"后,仅让图表内气泡的边框不可见
  • guides(size = guide_legend(override.aes = list(color = "black")))用于覆盖图例样式,确保图例气泡仍显示黑色边框,避免和图表同步变为透明/白色

内容的提问来源于stack exchange,提问作者GiacomoDB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:22:17