3

バーと一致するようにラベルを x 軸の中央に配置するにはどうすればよいですか? また、x 軸のラベルに隠れないように、x 軸のラベルをさらに下に配置するにはどうすればよいですか? ありがとう!

par(mar= c(15,4,4,2) + 0.1)
barplot(58:1,xaxt="n",xlab="",ylab="Frequency", col=gray(5:0/5))
axis(1, labels=FALSE)
text(1:58, par("usr")[3] - 0.25, srt = 90, adj = 1,
labels = rep("Long Species Name",58), xpd = TRUE)
mtext(1, text = "Species", line=6)

ここに画像の説明を入力

4

1 に答える 1

10

barplot()(を読んで)の戻り値をチェックしてください?barplot。そこで、棒の中点が関数によってベクトルとして返されることがわかります。したがって、返されたオブジェクト (ここでは object bar) を割り当て、それを の呼び出しで使用しaxis()て目盛りを見つけるのは簡単なことです。

呼び出しでは、引数引数の両方を指定し、 に格納されているバーの中間点に設定されていることaxis()に注意してください。軸に対してラベルを回転させるために使用され、ラベルのサイズを縮小するために使用されます。labelsatatbarlas = 2cex.axis = 0.6

質問の 2 番目の部分はtitle()line引数によって処理されます。最初に、パラメーターを設定するときに余白サイズを「行」で設定していることに注意してくださいmar。したがって、サイド 1 (下) の余白は 15 行です。inのline引数はtitle()、軸ラベルを描画するマージン線を指定します。

これを私たちが持っている修正された例と一緒に置く:

op <- par(mar= c(15,4,4,2) + 0.1)
bar <- barplot(58:1, xaxt="n", xlab="", ylab="Frequency", col=gray(5:0/5))
axis(1, labels = paste("Long Species Name", 1:58), at = bar,
     las = 2, cex.axis = 0.6)
title(xlab = "Species", line=11)
par(op)

生成するもの:

コード例を使用して生成された棒グラフ

于 2012-08-05T10:24:10.560 に答える