標準ボックスプラット関数Rの平均値と中央値の両方を示すボックスプロットを作成できますか?私の現在のソリューションは、クロスのように平均値表示:平均値を線として表示するボックスプロット
set.seed(1234)
values <- runif(10,0,1)
boxplot(values)
points(mean(values),col="red",pch=4,lwd = 4)
標準ボックスプラット関数Rの平均値と中央値の両方を示すボックスプロットを作成できますか?私の現在のソリューションは、クロスのように平均値表示:平均値を線として表示するボックスプロット
set.seed(1234)
values <- runif(10,0,1)
boxplot(values)
points(mean(values),col="red",pch=4,lwd = 4)
をできます
set.seed(753)
df <- data.frame(y=rt(100, 4), x=gl(5, 20))
bx.p <- boxplot(y~x, df)
bx.p$stats[3, ] <- unclass(with(df, by(y, x, FUN = mean)))
bxp(bx.p, add=T, boxfill="transparent", medcol="red", axes=F, outpch = NA, outlty="blank", boxlty="blank", whisklty="blank", staplelty="blank")
説明を経由して@scs:
bxp$stats
は行列を返します各ボックスプロットの下部ウィスカー、下部ヒンジ、中央値、上部ヒンジおよび上部ウィスカーの極値を含む。上記の解決方法では、bx.p$stats[3, ]
で指定された中央値を平均値で上書きします。 bxp
関数は、boxplotオブジェクトをプロットする関数です。
結果:
をboxplot
のデフォルトのプロットは、ボックスの幅がx-axis
に1.2
に0.8
から行くことができます。
あなたは、したがって、以下のコードでの平均のためのラインを描くことができます。あなたも重ねてプロットし、完全を期すために
lines(c(0.8, 1.2), rep(mean(values), 2), col="red", lwd = 2)
これは、実際の問題を解決しますが、それは同じウィンドウまたはカスタムの幅/高さのプロットで複数の箱ひげ図を含む溶液に容易に拡張できません。したがって、以下のより一般的な解決策が受け入れられた回答として選択されました。 – scs
たぶんそれは私ですが、私は同じプロットで2つのものを区別する単なる色以外の兆候があるのが好きです。実際の用紙でこれを読んでみたいと思っていたのですが、それを印刷できる唯一のプリンタは黒いインクしか持っていないと思います。 –
legend( 'topleft'、lty = c(1,1)、lwd = rep(3,2)、col = c( "black"、 "red")、legend = c( "median "、" mean ")、horiz = TRUE、bg =" transparent ")'である。 – lukeA
私のプリンタは凡例にも黒インクを使用しています。 :-) –