Ausrichten von Text in einem Grundstück
-
27-09-2019 - |
Frage
Ich bin ein R-Neuling und hatte eine Frage. Ich versuche, einen Text in ein R Grundstück zu platzieren. Hier einige Code, um die Helligkeit Datensatz im UsingR Paket.
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)))
Dieser Code erzeugt:
Das Problem mit dieser Ausgabe ist, dass der Text nicht links ist alligned links. Hat jemand wissen, wie der Text machen links alligned.
Danke.
Lösung
Während Legende () natürlich geeignet für Legenden ist, gibt es eine allgemeine Lösung für den gesamten Text. Der Trick besteht darin, dass die Positions-Option setzt nicht nur die Position des Text relativ zum aktuellen Standort, aber es setzt auch die Begründung. Oben und Unten sind Zentrum gerechtfertigt. po 2 macht den Text rechtsbündig einstellen. Wenn es rechts von der Position (pos = 4), dann wird es linksbündig.
Ersetzen Sie Ihren Text Code mit ...
text(1.5, 150, paste("Mean =", round(MyMean, 1), "\nMedian =",
round(MyMedian, 1), "\nStd.Dev =", round(MySd, 1)), pos = 4)
für gerechtfertigt links und ...
text(5.0, 150, paste("Mean = ", round(MyMean, 1), "\nMedian = ",
round(MyMedian, 1), "\nStd.Dev = ", round(MySd, 1), sep = ''), pos = 2)
für Recht gerechtfertigt ist.
Andere Tipps
Versuchen Sie es mit legend()
statt 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")
Sie müssen mit der Einstellung der Position spielen, um. Sie sollten erwägen nicht xy-Koordinaten überhaupt verwenden, aber diese beiden Argumente mit "topleft"
ersetzen