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

如何使用ggplot2仅修改单个图例项的符号?

解决方案

要单独修改图例中某个项的符号,核心是通过guide_legend()的override.aes参数自定义每个图例项的形状,同时保持颜色和符号在同一个图例中。

修改后的完整代码如下:

library(ggplot2)
library(ggtext)

scatter <- ggplot(data) + 
  geom_point(aes(x=Period, y=y1, colour="prevalence"), size=4) +
  
  geom_segment(data = CIinfo, aes(x=Period, y=LowerCI, xend=Period, yend=UpperCI,
                                  colour="estimated probability and 95%CI"), 
               size=2, lineend = "round", alpha=0.7, show.legend = FALSE) +
  
  geom_point(aes(x=Period, y=y2, colour="median prevalence"), size=3) +

  geom_point(aes(x=Period, y=y3, colour="estimated probability and 95%CI"), size=4, shape=18) + # 图中的点用菱形
  
  theme_minimal() +
  scale_color_manual(values = c("#d2d2d2","#365C8DFF","#EB6529FF"), 
                     breaks = c("prevalence","median prevalence","estimated probability and 95%CI"),
                     labels = ~ stringr::str_wrap(.x, width = 28)) +
  
  labs(x = "Time Period", 
       title ="Estimated Probability and Prevalence Rates") +
  
  theme(plot.title = element_textbox(hjust = 0.5,
                                     margin = margin(b = 15)),
        plot.title.position = "plot",
        axis.title.x = element_text(margin = margin(t = 10, r = 0, b = 0, l = 0)),
        axis.title.y = element_blank(),
        axis.text = element_text(face="bold"),
        panel.grid.minor.x = element_blank(),
        legend.title = element_blank(),
        legend.spacing.y = unit(8, "pt")
  ) + 
  
  # 关键:通过override.aes指定每个图例项的形状
  guides(colour = guide_legend(byrow = TRUE,
                               override.aes = list(shape = c(16, 16, 18)))) + # 前两个保持圆形,第三个用菱形
  
  scale_y_continuous(labels = scales::percent, limits = c(0, .5))

scatter

关键说明:

  • override.aes = list(shape = c(16, 16, 18)):按照breaks的顺序,分别设置三个图例项的形状。其中shape=18是实心菱形,如果你需要带横线的菱形(中间有一横的样式),可以替换为shape=22(填充菱形带边框)或者其他符合需求的形状编号。
  • 保持colour映射统一,避免将形状单独映射导致图例拆分,这样既可以单独修改目标符号,又能维持图例的整体性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:05:38