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

如何为geom_points()设置点大小并添加尺寸图例?

解决ggplot2气泡图同时自定义点大小、显示尺寸图例并设置标题的问题

要同时实现自定义点大小、显示尺寸图例并设置图例标题,核心是将size纳入aes()映射,并通过scale_size_identity()直接使用数据中的尺寸值,同时开启图例。以下是修正后的完整代码:

library("ggplot2")

set.seed(123) # 固定随机种子,结果可复现
x <- sample(2000, 1000, replace=T)
y <- sample(2000, 1000, replace=T)
category <- sample(c("one", "two"), 1000, replace = TRUE) # 修正原代码行数不一致问题
size <- sample(2000, 1000, replace=T)/50

df <- data.frame(x, y, category, size)

ggplot(df, aes(x=x, y=y, fill=category, size=size)) +
  geom_point(shape=21, color="black") +
  # 分别设置填充图例和尺寸图例
  guides(
    fill=guide_legend(override.aes=list(size=5)), # 调整分类图例的点大小,避免过大
    size=guide_legend(title="自定义尺寸标题")     # 设置尺寸图例的标题
  ) +
  scale_size_identity(guide="legend") # 直接使用数据中的size值作为点大小,同时生成图例

关键说明:

  • 原第一个示例中,size=df$size是直接传入参数而非映射到aes(),ggplot不会为非映射的参数生成图例,因此无法显示尺寸图例。
  • 原第二个示例将size放入aes(),但默认的scale_size_continuous()会将数据中的size值映射到0-6的默认大小范围,导致无法直接使用自定义的尺寸值。使用scale_size_identity(guide="legend")可以让点的大小完全匹配数据中的size数值,同时强制生成尺寸图例。
  • 通过guides()函数可以分别控制填充图例和尺寸图例的样式,包括设置尺寸图例的标题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:52:34