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

如何修改ggplot散点图中单个数据点的形状与大小?

解决ggplot散点图中特定数据点的形状与大小自定义问题

要实现只修改"Our Company"数据点的形状和大小,核心是把shape和size属性绑定到Company分组变量,再通过手动刻度指定不同分组的样式,而非直接给geom_point设置全局参数。

以下是修改后的完整代码:

library(tidyverse)

df <- data.frame(School_ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 Score = c( 20, 23, 33, 40, 19, 36, 50, 49, 33, 10),
                 Company = c("Other","Other", "Other", "Other", "Other",
                             "Other", "Other", "Other", "Other", "Our Company"))

df %>%
  ggplot(aes(reorder(School_ID, -Score),
             Score,
             colour = Company,
             shape = Company,  # 新增:将形状与Company分组绑定
             size = Company)) +  # 新增:将大小与Company分组绑定
  geom_point() +  # 移除全局size参数,改为映射控制
  labs(x = "Companies", 
       y = "Score") +
  scale_color_manual(name = "",
                     labels = c("Other companies", "Our company"),
                     values = c("#21908CFF", "#440154FF")) +
  scale_shape_manual(name = "",  # 手动指定各分组的形状
                     labels = c("Other companies", "Our company"),
                     values = c(16, 17)) +  # 16为实心圆,17为实心三角
  scale_size_manual(name = "",  # 手动指定各分组的点大小
                    labels = c("Other companies", "Our company"),
                    values = c(4, 6)) +  # 其他点大小4,目标点大小6
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank(),
        panel.grid = element_blank()) +
  guides(color = guide_legend(override.aes = list(size = 6)),  # 统一图例点大小
         shape = guide_legend(override.aes = list(size = 6)),
         size = guide_legend(override.aes = list(size = 6)))

关键改动说明:

  • 属性映射:在ggplot()的aes中添加shape = Company和size = Company,让样式属性随分组动态变化,替代全局统一设置。
  • 手动刻度配置:用scale_shape_manual指定不同分组的形状码,用scale_size_manual设置对应点的大小。
  • 图例优化:通过guides()统一图例中点的显示大小,避免图例样式不一致。
  • 冗余代码清理:删除无用的scale_fill_manual(geom_point用color控制颜色,fill仅对带填充的形状生效)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:37:37