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

如何在ggplot中从另一数据框显示单个值?

解决方法

你的代码存在两个问题:一是没给文本指定显示位置,二是标签格式未正确生成。按下面的方式修改即可实现需求:

正确代码示例

library(tidyverse)

# 数据准备
df <- data.frame(junior = c(4,3,2,2,4,3,2), 
                 senior = c(2,6,3,5,2,6,3))
longdf <- df %>%
  pivot_longer(cols = everything(), names_to = 'class', values_to = 'rating')

df2 <- data.frame(p = .002, d = 0.64)

# 绘图
ggplot(data = longdf, aes(x = class, y = rating)) +
  geom_boxplot() +
  # 插入d值文本,定位到右上角角落
  geom_text(
    data = df2,
    # 生成指定格式的标签
    label = paste("d =", df2$d),
    # 用Inf定位到右上角,hjust和vjust调整位置避免超出图框
    x = Inf, y = Inf,
    hjust = 1.1, vjust = 1.1
  )

关键说明

  • 标签生成:用paste("d =", df2$d)把字符串和数值拼接成需要的格式;如果习惯更直观的语法,也可以用glue::glue("d = {d}")(需先加载glue包),直接在字符串里引用df2的d列变量即可。
  • 位置控制:x = Inf, y = Inf会把文本定位到绘图区域的右上角,hjust = 1.1和vjust = 1.1是把文本往右上角外稍挪一点,避免和箱线图元素重叠。如果想放在其他角落,比如左下角,就设置x = -Inf, y = -Inf,同时调整hjust = -0.1, vjust = -0.1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:27:09