回答:
(これは本当にコメントですが、イラストが必要なため、返信として投稿する必要があります。)
Ed Tufteは、彼の定量的情報の視覚的表示(p。125、初版1983)で箱ひげ図を正確に再設計して、「非公式の探索的データ分析、つまり研究員の時間を線の描画以外のことに専念させる」ことができるようにしました。私は(完全に自然な方法で)70の平行箱ひげ図を示すこの例の外れ値の描画に対応するように彼の再設計を拡張しました:
私はこれをさらにを改善するために、いくつかの方法を考えることができますが、それは1つが、複雑なデータセットを探索の暑さの中で作り出すかもしれないものの特性です:私たちは私たちが聞かせて可視化させるために満足している参照データを、良いプレゼンテーションは後で来ることができます。
これを同じデータの従来のレンディションと比較してください。
Tufteは、「データインク比率を最大化する」という彼の原則に基づいて、他にもいくつかの再設計を提示しています。彼らの価値は、この原則が効果的な探索的グラフィックの設計にどのように役立つかを示すことにあります。ご覧のとおり、それらをプロットするメカニズムは、ポイントマーカーとラインを描画できるグラフィックプラットフォームを見つけることと同じです。
おそらくこれまでで最もクールなプロット、これらは基本的にバイオリンプロットの小さな複数の実装です。バイオリンプロットは、箱ひげ図よりもはるかに優れています。正規分布ではない分布の詳細を表示できます(たとえば、バイモーダル分布を非常によく表示できます)。それらは通常ガウス平滑化(または同様の)に基づいているため、エンドポイントの高い分布(指数分布など)に対してはうまく機能しませんが、どちらもボックスプロットしません。
BeanplotはRで非常に簡単に実現できます-beanplotパッケージをインストールするだけです:
library(beanplot)
# Sampling code from Greg Snow's answer:
my.dat <- lapply( 1:20, function(x) rnorm(x+10, sample( 10, 1), sample(3,1) ) )
beanplot(my.dat)
このbeanplot
機能にはたくさんのオプションがあるので、あなたの心の欲望に合わせてカスタマイズすることができます。ggplot2でbeanplotsを実行する方法もあります(最新バージョンが必要です)。
library(ggplot2)
my.dat <- lapply(1:20, function(x) rnorm(x+10, sample(10, 1), sample(3,1)))
my.df <- melt(my.dat)
ggplot(my.df, aes(x=L1, y=value, group=L1)) + geom_violin(trim=FALSE) +
geom_segment(aes(x=L1-0.1, xend=L1+0.1, y=value, yend=value), colour='white')
これを行うためのいくつかの方法のサンプルRコードを次に示します。おそらくこれを拡張し(ラベルなどを含め)、おそらく関数に変換したいと思うでしょう。
my.dat <- lapply( 1:20, function(x) rnorm(x+10, sample( 10, 1), sample(3,1) ) )
tmp <- boxplot(my.dat, plot=FALSE, range=0)
# box and median only
plot( range(tmp$stats), c(1,length(my.dat)), xlab='', ylab='', type='n' )
segments( tmp$stats[2,], seq_along(my.dat), tmp$stats[4,] )
points( tmp$stats[3,], seq_along(my.dat) )
# wiskers and implied box
plot( range(tmp$stats), c(1,length(my.dat)), xlab='', ylab='', type='n' )
segments( tmp$stats[1,], seq_along(my.dat), tmp$stats[2,] )
segments( tmp$stats[4,], seq_along(my.dat), tmp$stats[5,] )
points( tmp$stats[3,], seq_along(my.dat) )