Ggplot2でいくつかのバイオリン図を描きたいのですが、中央値と1番目と3番目の四分位数が自動的に表示されないことに気付きました。これらのプロットは、この情報を使用するとはるかに有益になると思います。誰かがそれを行う方法を知っていますか?
私はグーグル検索からこれを発見しました:
まず、このStack Overflow post は、stat_summary(fun.y="median", geom="point")
を追加して、バイオリン図の中央値を点としてプロットできることを示しています。
四分位数に関しては、 here で示されているように、上記のfun.y引数に対して独自の関数を作成する必要があります。例えば。:
median.quartile <- function(x){
out <- quantile(x, probs = c(0.25,0.5,0.75))
names(out) <- c("ymin","y","ymax")
return(out)
}
完全なコードは次のようになります。
require(ggplot2)
median.quartile <- function(x){
out <- quantile(x, probs = c(0.25,0.5,0.75))
names(out) <- c("ymin","y","ymax")
return(out)
}
ggplot(iris,aes(Species,Sepal.Length))+
geom_violin()+
stat_summary(fun.y=median.quartile,geom='point')
これを行う1つの方法は、その上に薄い箱ひげ図を配置することです。アイリスデータの例を次に示します。
require(ggplot2)
ggplot(iris,aes(Species,Sepal.Length))+geom_violin()+geom_boxplot(width=.1)