各バーの中心が共通の軸に沿っているヒストグラムを作成するにはどうすればよいですか? これは、階段状のエッジを持つバイオリン プロットのように見えます。
私はこれを Lattice で行いたいと思っています。また、パネル機能などのカスタマイズは気にしませんが、ベース R グラフィックスや ggplot2 を使用することもできれば幸いです。(私はまだ ggplot2 に身を投じていませんが、ある時点で急落する予定です。)
(なぜこれを行う必要があるのですか?データが離散的で、[5-50] の等間隔の数値で発生する場合、バイオリン プロットの代わりに役立つと思います。各ビンはポイントを表します。もちろん, 通常のヒストグラムを生成することもできます. しかし、箱ひげ図とバイオリン図の両方を表示すると便利な場合があると思います. 等間隔の離散データを使用すると、箱ひげ図と同じ向きの対称ヒストグラムで比較できます.バイオリン プロットと同様に、ボックス プロットを使用したデータの詳細な構造の表示. この場合、対称ヒストグラムはバイオリン プロットよりも有益である可能性があります. data は文字通り離散的ではなく、一連の規則的な値の近くに収束するだけです.これにより、R's beanplot パッケージは、値を最も近い通常の値にマッピングして正規化しない限り、あまり役に立ちません。))
以下は、エージェントベースのシミュレーションによって生成された、一部のデータの 30 観測サブセットです。
df30 <- data.frame(crime.v=c(0.2069526, 0.2063516, 0.06919754,
0.2080366, -0.06975912, 0.206277, 0.3457634, 0.2058985, 0.3428499,
0.3428159, 0.06746109, -0.07068694, 0.4826098, -0.06910966, 0.06769761,
0.2098732, 0.3482267, 0.3483602, 0.4829777, 0.06844112, 0.2093492,
0.4845478, 0.2093505, 0.3482845, 0.3459249, 0.2106339, 0.2098397,
0.4844956, 0.2108985, 0.2107984), bias=c("beast", "beast", "beast",
"beast", "beast", "beast", "beast", "beast", "beast", "beast", "beast",
"beast", "beast", "beast", "beast", "virus", "virus", "virus", "virus",
"virus", "virus", "virus", "virus", "virus", "virus", "virus", "virus",
"virus", "virus", "virus"))
Rdata ファイル内の 600 個の観測の完全なセットで名前が付けられたデータフレームdf
は、次のリンクからダウンロードできます: CVexample.rdata。
値はすべて次のcrime.v
いずれかに近いもので、これを焦点と呼びます。
[1] -0.89115386 -0.75346155 -0.61576924 -0.47807693 -0.34038463 -0.20269232 -0.06500001
[8] 0.07269230 0.21038460 0.34807691 0.48576922 0.62346153 0.76115383 0.89884614
(crime.v
値は実際には 13 個の変数の平均であり、その値は -1 から 1 の範囲である可能性がありますが、最終的には .9 または -.9 付近の値に収束します。13 個の値の平均は約 .9 または - .9 は病巣にやや近い. 実際には、データを調べて病巣の適切な値を決定しました.
バイオリン プロットは次のように作成できます。
require(lattice)
bwplot(crime.v ~ bias, data=df30, ylim=c(-1,1), panel=panel.violin)
これをより大きなデータセットで実行すると、作成されたバイオリン プロットの 1 つがマルチモーダルであり、もう 1 つがそうではないことがわかります。ただし、これは 2 つのバイオリン プロットの基礎となるデータの違いを反映していないようです。私が知る限り、プロットに関連する焦点の位置によるアーティファクトです. density
panel.violin に渡されるパラメータを微調整することで違いを滑らかにすることができますが、各クラスタにいくつのポイントがあるかを表すだけの方が明確です。
ありがとう!