2017-11-16 20 views
0

私の問題は、データの解像度より大きな特定のビン幅のggplot2を使ってヒストグラムを作成すると、ビンには基礎データからの増分が不均等になることがあります。これは、ヒストグラムに大きなピークをもたらし、5つのデータがどのようにピークに達しているかの誤った印象を生じる。これを防ぐ組み込みの方法はありますか?ビン間にインクリメントを割り当てることはできますか?R ggplot2ヒストグラムビン割り当て

require(ggplot2) 
require(ggplot2movies) 
m <- ggplot(movies, aes(x = rating)) 
#Original resolution 
plot(m + geom_histogram(binwidth = 0.1) + scale_y_sqrt()) 
#Downsampled 
plot(m + geom_histogram(binwidth = 0.25) + scale_y_sqrt()) 

Original Resolution

Downsampled

+3

私はあなたが防止しようとしていることを理解していません。私はあなたが特定のビン幅を指定していることを意味し、プロットはビン数を表示します。データに適したビン幅を選択するだけです。正直なところ、それは解決された問題ではありません。基底の 'hist()'関数には、さまざまなアルゴリズムが実装されています。ヒストグラムは連続的な確率変数のためのもので、基本的に離散値を持つため、ピークに達します。あなたのデータには、私の意見では本当に誠実な構造がいくつかあることを示しています。 – MrFlick

+1

ベース 'hist'のアルゴリズムについては、'?nclass'を参照してください。これら3つのオプションのうちの1つを使用してビンの総数を決めることができますが、それらはすべて解像度ではなくデータの範囲に基づいています。また、データの解像度はその範囲で一定ではない可能性があります。 – Gregor

+0

@MrFlick他のデータセットとの比較を容易にするために、ビンの数を調整できるShinyアプリ用です。明らかに特定の倍数の解像度がビン幅として最も理にかなっていますし、値をそのサブセットに制限することもできますが、中間値には賢明なものを描きたいと思っています。 – Matt

答えて

0

回避策:あなたは別のx値の数をカウントし、ビンの数(またはそれらの一部)のそれを使用している場合 一つの可能​​soltutionは、することができbinの数とは対照的に、binwidthをデータ解決の関数として修正する。

+1

"peakiness"は、バーの中心とビンの幅の影響を受けます。これは 'center ='で設定できます。 – jtr13

1

内蔵の方法かどうかがある場合、私は、知らない、geom_histogram()を使用して、上書きすることができます30個のビンのデフォルトを持っています。単純にしている今の

plot(m + geom_histogram(bins = nlevels(as.factor(movies$rating)))) 

enter image description here