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

ggplot2如何将同一字段映射到size和color美学且仅保留一个图例

解决方案

你只需要保证color和size两个美学映射的标度参数完全一致,ggplot就会自动将两个图例合并为一个同时展示颜色和大小的合并图例,示例代码如下:

ggplot() + 
  geom_sf(data = DPEst_DH, aes(color = di1a, size = di1a)) +
  # 自定义颜色标度,可根据需求替换为其他色阶函数
  scale_color_gradient(
    name = "di1a", # 图例标题需和size标度完全相同
    low = "lightblue",
    high = "orangered",
    limits = range(DPEst_DH$di1a, na.rm = TRUE),
    breaks = seq(min(DPEst_DH$di1a, na.rm = TRUE), max(DPEst_DH$di1a, na.rm = TRUE), length.out = 5)
  ) +
  # 大小标度的名称、取值范围、刻度必须和颜色标度完全一致
  scale_size_continuous(
    name = "di1a",
    limits = range(DPEst_DH$di1a, na.rm = TRUE),
    breaks = seq(min(DPEst_DH$di1a, na.rm = TRUE), max(DPEst_DH$di1a, na.rm = TRUE), length.out = 5)
  )

如果不需要自定义刻度和取值范围,也可以直接通过guides函数统一指定两个映射的图例名称实现合并:

ggplot() + 
  geom_sf(data = DPEst_DH, aes(color = di1a, size = di1a)) +
  guides(color = guide_legend("di1a"), size = guide_legend("di1a"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:09:03