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

如何使用ggplot在图例框中添加图标或图片

解决方案

你可以通过ggimage扩展包实现ggplot图例中插入图标的需求,具体操作如下:

  • 安装依赖包
install.packages(c("ggplot2", "ggimage"))
library(ggplot2)
library(ggimage)
  • 准备映射数据
    提前将你需要展示的分类和对应的图标本地路径做好映射,示例结构如下:
# 分类和图标路径的对应表,替换成你自己的图标路径即可
icon_list <- list(
  "类别1" = "本地路径/图标1.png",
  "类别2" = "本地路径/图标2.png",
  "类别3" = "本地路径/图标3.png"
)

# 你的作图数据示例
plot_data <- data.frame(
  x = rep(1:5, 3),
  y = c(runif(5, 1,3), runif(5, 2,4), runif(5, 3,5)),
  group = rep(c("类别1", "类别2", "类别3"), each = 5)
)
  • 作图配置
    在aes中将image参数映射到分类变量,用scale_image_manual指定对应图标路径即可自动生成带图标的图例:
ggplot(plot_data, aes(x = x, y = y, group = group)) +
  geom_line(aes(color = group), linewidth = 1) +
  # 加数据点位置的图标,不需要的话可以去掉这行
  geom_image(aes(image = unlist(icon_list[group])), size = 0.08) +
  # 配置图例中的图标
  scale_image_manual(
    values = unlist(icon_list),
    name = "分类名称",
    guide = guide_legend(order = 1)
  ) +
  scale_color_discrete(name = "分类名称") +
  theme_minimal() +
  # 合并相同分类的图例
  theme(legend.position = "right")

如果你不需要在数据点位置展示图标,只需要图例里有,可以只保留scale_image_manual的配置,或者用cowplot包单独生成图标图例后和主图拼接,调整位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:15:00