web-dev-qa-db-ja.com

r箱ひげ図傾斜ラベルx軸

rの箱ひげ図のx軸のラベルをどのように回転させることができますか?使用するコードはわかっていますが、適用できません。

text(**????**, par("usr")[3] - 0.25, srt = 45, adj = 1, labels = labels, xpd = TRUE)

疑問符がある場合、どの変数が使用されますか?私はこの箱ひげ図を作成しました:

enter image description here

このコードの使用:

soil=read.csv("soil_temp_boxplot.csv", header=TRUE, sep=";")    
tiff("soil_boxplot.tiff")
par(mar=c(5.5,3.5,0.5,0.5))
labels<-paste(c("RB-GL830-[16]-10","RB-GL830-[16]-30", "SB-GL834-[11]-10","SB-GL834-[11]-30", "RB-GL843-[17]-10","RB-GL843-[17]-30","SB-GL864-[12]-10","SB-GL864-[12]-30","SB-GL989-[10]-30", "RB-F844-[18]-10", "RB-F844-[18]-30", "SBB-F-864-[14]-10","SB-F991-[13]-10", "SB-F991-[13]-30"))
boxplot(soil$rb.gl.10.830.16, soil$rb.gl.30.830.16, soil$sb.gl.10.834.11, soil$sb.gl.30.834.11, soil$rb.gl.10.843.17, soil$rb.gl.30.843.17, soil$sb.gl.10.864.12, soil$sb.gl.30.864.12, soil$sb.gl.30.989.10, soil$rb.f.10.844.18, soil$rb.f.30.844.18, soil$sbb.f.10.864.14, soil$sb.f.10.991.13, soil$sb.f.30.991.13, yaxt="n", col=c("darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","burlywood2","burlywood4","burlywood2","burlywood2", "burlywood4"))
axis(1, labels = TRUE)
axis(2, c(0, 8, c(1, 2, 3, 4, 5,6,7)), las=1)
text(labels, par("usr")[3] - 0.25, srt = 45, adj = 1, labels = labels, xpd = TRUE)
mtext(2, text="Soil Temperature [°C]", line=2.2)
mtext(1, text="Location", line=4.5)
dev.off()
8
samjam

元のtext式に従う代替手段:

_par(mar=c(6, 4.1, 4.1, 2.1))

labels <- paste(c("RB-GL830-[16]-10", 
                  "RB-GL830-[16]-30",
                  "SB-GL834-[11]-10",
                  "SB-GL834-[11]-30",
                  "RB-GL843-[17]-10",
                  "RB-GL843-[17]-30"))

boxplot(count ~ spray, data = InsectSprays,
        col = "lightgray", xaxt = "n",  xlab = "")

# x axis with ticks but without labels
axis(1, labels = FALSE)

# Plot x labs at default x position
text(x =  seq_along(labels), y = par("usr")[3] - 1, srt = 45, adj = 1,
     labels = labels, xpd = TRUE)
_

ラベルの位置にx = seq_along(labels)を使用するのはなぜですか? xtextは、ラベルを配置する座標のベクトルです。 _?boxplot_を見ると、at引数は、箱ひげ図を描画する場所を示す数値ベクトル[...]であることがわかります。デフォルトは1:nで、nは箱の数。」 at呼び出しでboxplot引数を指定していないため、デフォルトの「1:n位置」が使用されます。ボックスの数はもちろん、@ JoshO'Brienが彼の回答で使用した説明変数のレベルの数です。別の方法を示すために、代わりにカスタマイズしたラベルベクトルを使用しました(もちろん、因子レベルの数と同じ長さである必要があります)。 _seq_along_は、引数の1からlengthまでの通常のシーケンスを生成します。これは、「デフォルトは1:n」のat位置に対応します。

補足:データは「ワイド」形式のようです。 Rの多くの場合、データを「長い」形式にする方が便利です。 plot関数では、xのすべてのレベルのデータを指定する代わりに、x変数(場所など)とy変数(土壌温度など)を指定するだけで済みます。 enter image description here

12
Henrik

Plotrixパッケージのstaxlab関数を見てください。これにより、これ(および代替)がかなり簡単になります。

2
Greg Snow