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

ggplot2中仅对单个分组散点执行大小映射的实现方法

ggplot2 分组控制点大小映射实现方法

要实现Random 30组散点随作答尝试次数缩放、Mandatory 10组散点固定大小的效果,核心思路是拆分两个geom_point图层分别绘制两组数据,不要在全局美学映射里统一绑定size属性,避免两组都被套用大小映射规则。

核心修改点

  • 删除原有全局geom_point()中的size映射配置
  • 新增两个独立的散点图层:
    • 第一个图层仅加载section = "random"的子集,配置aes(size = questionAttempt)实现动态大小映射
    • 第二个图层仅加载section = "mandatory"的子集,直接在aes外设置固定size参数,不关联作答次数字段
  • 调整size标度配置,保证图例仅展示Random组的尝试次数对应大小规则,不会出现Mandatory组的冗余图例项

修改后完整代码

ggplot(weekData, aes(x=firstPB, y=firstAverageQScore))+
  # 绘制Random 30组散点:点大小映射到题目作答尝试次数
  geom_point(data = ~.x[.x$section == "random",], 
             aes(colour=section, size=questionAttempt))+
  # 绘制Mandatory 10组散点:使用统一固定大小,size数值可按需调整
  geom_point(data = ~.x[.x$section == "mandatory",], 
             aes(colour=section), size = 3)+
  labs(size="Number of attempts")+
  geom_smooth(method = glm, se= F) +
  ggtitle(paste0("Week ",week," First Attempts")) +
  xlab("Point Biserial") + xlim(-1,1)+
  ylab("Average Score for Question(%)") + ylim(0,100) +
  geom_label_repel(aes(label=number), alpha=0.5,max.overlaps = Inf)+
  geom_vline(xintercept = 0, linetype="dashed",
             color = "black", size=0.5)+
  scale_colour_discrete(name="Group",
                       breaks=c("random", "mandatory"),
                       labels=c("Random 30","Mandatory 10")) +
  # 可选:调整Random组点的大小缩放范围,c(最小值, 最大值)按需修改
  # scale_size_continuous(range = c(1,6)) +
  theme(panel.background = element_rect(fill = "white", 
                                        colour = "white",
                                        size = 0.5, linetype = "solid")) +
  annotate("rect", xmin=(0.25), xmax=(Inf), 
           ymin=(30), ymax=(70), fill="#b1b3b133")

注1:代码中Mandatory组的固定size默认设为3,你可以根据出图的实际视觉效果调整数值大小;如果觉得Random组的点大小缩放范围不符合预期,可以取消注释scale_size_continuous那行代码,修改range参数的两个值即可自定义尺寸区间。
注2:如果你使用的ggplot2版本低于3.3.0,不支持~.x的简易子集写法,可以把两个geom_point层的data参数替换为data = subset(weekData, section == "random")和data = subset(weekData, section == "mandatory"),运行效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:54:08