我是R新手并且有一个问题。我试图将一些文本放入R图中。这是使用UsingR包中的亮度数据集的一些代码。
library(UsingR)
brightness
MyMean <- mean(brightness)
MyMedian <- median(brightness)
MySd <- sd(brightness)
hist(brightness, breaks=35, main="This is a Histogram",
xlab="Brightness", ylab="Frequency", xlim=c(0,15), ylim=c(0, 200))
text(3.5, 150, paste("Mean =", round(MyMean, 1), "\n Median =",
round(MyMedian, 1), "\n Std.Dev =", round(MySd, 1)))
此代码生成:
此输出的问题是文本未左对齐。有谁知道如何使文本保持对齐。
感谢。
答案 0 :(得分:33)
虽然legend()当然适用于图例,但所有文本都有一般解决方案。诀窍是pos选项不仅设置文本相对于当前位置的位置,而且还设置对齐。上下都是正确的。将pos设置为2会使文本右对齐。当它被设置在位置的右侧(pos = 4)时,它被左对齐。
将文本代码替换为...
text(1.5, 150, paste("Mean =", round(MyMean, 1), "\nMedian =",
round(MyMedian, 1), "\nStd.Dev =", round(MySd, 1)), pos = 4)
左对齐和......
text(5.0, 150, paste("Mean = ", round(MyMean, 1), "\nMedian = ",
round(MyMedian, 1), "\nStd.Dev = ", round(MySd, 1), sep = ''), pos = 2)
右倾。
答案 1 :(得分:12)
尝试使用legend()
代替text()
legend(3.5, 150, legend = c(paste("Mean =", round(MyMean, 1)),
paste("Median =",round(MyMedian, 1)),
paste("Std.Dev =", round(MySd, 1))),
bty = "n")
你必须调整位置调整。您可以考虑不使用xy坐标,而是将这两个参数替换为"topleft"