Выровнять текст внутри участка
Я новичок в 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)))
Этот код создает:
![enter image description here]()
Проблема с этим выходом заключается в том, что текст не оставлен слева. Кто-нибудь знает, как сделать текст оставленным без привязки.
Спасибо.
Ответы
Ответ 1
Хотя легенда(), конечно, подходит для легенд, существует общее решение для всего текста. Фокус в том, что опция 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)
для правильного выравнивания.
Ответ 2
Попробуйте использовать 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"