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

如何用ggplot绘制带箭头连接的学校实际/预期分数对比图?

用ggplot绘制带箭头的学校分数对比图

你的需求是用箭头连接同一学校的actual_score(红点)和expected_score(蓝点),可以通过geom_segment()实现,以下是修正后的完整代码:

data %>%
  mutate(School = fct_reorder(School, actual_score)) %>%
  ggplot(aes(x = School)) +
  # 绘制带箭头的连线(置于散点下方,避免遮挡)
  geom_segment(
    aes(y = expected_score, yend = actual_score, xend = School),
    arrow = arrow(length = unit(0.2, "cm")),
    color = "gray50"
  ) +
  geom_point(aes(y = actual_score), colour = "red") +
  geom_point(aes(y = expected_score), colour = "blue") +
  # 可选:优化图表标签
  labs(
    y = "分数",
    title = "各学校实际分数vs预期分数"
  )

关键说明:

  • geom_segment():专门用于绘制线段,x和xend都绑定School,确保同一学校的两个点在同一垂直线上;y和yend分别对应预期分数和实际分数,定义线段的起止位置。
  • arrow参数:通过arrow(length = unit(0.2, "cm"))添加箭头,length值可以根据需要调整箭头大小。
  • 图层顺序:先画线段再画散点,避免箭头被散点遮挡。

如果需要调整箭头方向(比如从实际分数指向预期分数),只需交换y和yend的取值即可:

geom_segment(
  aes(y = actual_score, yend = expected_score, xend = School),
  arrow = arrow(length = unit(0.2, "cm")),
  color = "gray50"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:15:31