次のコマンドを使用して、ジッタを含む散布図を作成しています。
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T))
library(lattice)
stripplot(NUMS~GRP,data=ddf, jitter.data=T)
これらのポイント(グループごとに1つ)にボックスプロットを追加します。検索しようとしましたが、すべてのポイント(外れ値だけでなく)とジッターをプロットしたコードを見つけることができません。どうすれば解決できますか。ご協力いただきありがとうございます。
_ggplot2
_でこれを行うには、次を試してください:
_ggplot(ddf, aes(x=GRP, y=NUMS)) +
geom_boxplot(outlier.shape=NA) + #avoid plotting outliers twice
geom_jitter(position=position_jitter(width=.1, height=0))
_
明らかに、position_jitter()
の幅と高さの引数を好みに合わせて調整できます(高さのジッターによりプロットが不正確になるため、_height=0
_をお勧めします)。
パッケージplotteR
内にspreadPoints()というR関数を作成しました。パッケージは、次のコードを使用してRライブラリに直接インストールできます。
install.packages("devtools")
library("devtools")
install_github("JosephCrispell/basicPlotteR")
提供されている例では、次のコードを使用して下の図の例を生成しました。
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T))
boxplot(NUMS ~ GRP, data = ddf, lwd = 2, ylab = 'NUMS')
spreadPointsMultiple(data=ddf, responseColumn="NUMS", categoriesColumn="GRP",
col="blue", plotOutliers=TRUE)
これは進行中の作業です(入力としての数式の欠如は不格好です!)が、データの要約のようなバイオリンとしても機能するX軸上の点を広げる非ランダムな方法を提供します。興味のある方は、ソース code をご覧ください。
lattice
ソリューションの場合:
_library(lattice)
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5], 500, replace = T))
bwplot(NUMS ~ GRP, ddf, panel = function(...) {
panel.bwplot(..., pch = "|")
panel.xyplot(..., jitter.x = TRUE)})
_
デフォルトの中央ドット記号は、_pch = "|"
_のある行に変更されました。ボックスおよびウィスカーの他のプロパティは、trellis.par.set()
関数を介して_box.umbrella
_および_box.rectangle
_で調整できます。ジッターの量は、factor
という名前の変数で調整できます。ここで、_factor = 1.5
_は50%増加します。