web-dev-qa-db-ja.com

プロット内でテキストを揃える

私は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

この出力の問題は、テキストが左揃えになっていないことです。誰もがテキストをそのままにしておく方法を知っていますか。

ありがとう。

23
ATMathew

Legend()はもちろん凡例に適していますが、すべてのテキストに一般的な解決策があります。秘optionは、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)

正当化された。

33
John

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座標をまったく使用しないで、これらの2つの引数を"topleft"に置き換えることを検討することもできます。

12
JoFrhwld