在箱线图中的一条直线上添加标签

6
我正在尝试在箱线图中的 abline 上添加一个标签。我知道我必须使用 text() 函数,但无论我尝试什么都没有出现在我的图表上。
我的绘图代码如下:
# Technical Ability SUS Score box plot
par(mar=c(4, 4, 2, 1))
boxplot(
  tech3suscuq$SUS,
  tech4suscuq$SUS,
  tech5suscuq$SUS,
  names=c(3,4,5),
  xlab="Technical Ability",
  ylab="Score",
  main="SUS Scores by Technical Ability",
  col=c("green", "orange", "purple"),
  cex.main="0.8",
  cex.lab="0.8",
  cex.axis="0.8",
  yaxt="n"
)
axis(2, cex.axis="0.8", at=seq(50,100, 5))
abline(h=68, lwd=2, lty="solid", col="red")
text(4.5, 68.4, "Benchmark")

但是当我运行它时,我得到了这个:

enter image description here

所以我的问题是,为什么我的“基准测试”文本没有出现在红线上方,我该如何让它显示出来?

4
因为你假设 x 坐标为 4.5,但你的坐标系统可能不在这个范围内。请注意,你使用了 names=c(3, 4, 5),这些不是你绘图的坐标。使用 par("usr") 查找你的坐标系限制,或者使用 locator() 在你的绘图中交互地定位一个位置。 - Julian_Hn
3
请尝试使用text(1.5,68.4,“基准”)。因为您的3-5个数字是标签而不是x坐标。您可以使用locator(1)来检查它,并在您想要放置标签的位置单击图表。 - Bastien
@Julian_Hn,您的建议很有效。谢谢! - Student228
@Julian_Hn 请您能否提供您的解决方案。目前看起来似乎没有答案,尽管您的建议对于OP是有效的。 - G5W
1个回答

0

正如@Julian_Hn在评论中提到的那样,x轴与4.5不匹配。因为我们有3个值,所以正确的位置应该是2.5,即第2个和第3个箱线图之间。

尝试这个例子:

boxplot(mpg ~ cyl, mtcars)
abline(h = 15, col = "red")

#adding a vertical line to illustrate where the 2.5 is on x-axis
abline(v = 2.5, col = "grey", lty = "dashed")

# using adjust to move the text above the line
text(2.5, 15, "Benchmark", adj = c(0.5, -0.5))

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接