26

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

このコードは以下を生成します。

ここに画像の説明を入力

この出力の問題は、テキストが左揃えにされていないことです。テキストを左揃えにする方法を知っている人はいますか。

ありがとう。

4

2 に答える 2

39

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)
于 2010-08-11T01:17:28.730 に答える
13

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"

于 2010-08-11T00:22:19.860 に答える