2016-05-31 8 views
3

バーがたくさんあるバープロットでは、バーの間隔やバーの幅が不安定になり、プロットの幅を変えると変化します。多くのバーを含むgeom_barのスペーシング/バーの幅のずれを防ぐ

set.seed(23511) 
dat <- data.frame(x = 1:540, y = rnorm(540)) 

library(ggplot2) 
ggplot(dat) + 
    geom_bar(aes(x = x, y = y), stat = "identity") 

これを解決する方法はありますか?私はwidthで試してみましたが、全体のプロットサイズは役に立たなかった。 alistaireさんのコメントに応えて

enter image description here

ここRStudioから最初の数小節のスクリーンショットです。最初の3つの正の値のための棒の間のスペースがありますように私に..最初の10個の値で

x   y 
1 1 0.9450960 
2 2 0.9277378 
3 3 0.4371033 
4 4 -1.0333073 
5 5 2.0473397 
6 6 0.8174123 
7 7 0.4277842 
8 8 -0.4336887 
9 9 0.2156801 
10 10 0.4918345 

を探し、それが明確に見える/バーがあります3つの正の値の第2のセットのためのより狭いですバー/バーの間にはスペースがありません。

enter image description here

+1

私は幅が実際に矛盾しているとは確信していません。彼らはちょうどお互いの隣に積み重なっているので、いくつかはより広いか狭く見える。しかし、それぞれのバーは同じ幅で表示されます。 – alistaire

+2

それは単に有限のピクセルの効果かもしれない –

+0

@alistaire私の編集を参照してください。あるいは、私はちょうどその計画をあまりにも長く見ていたでしょうか? ;) – beetroot

答えて

2

私は、これはピクセルの問題だと思います。バーのxが1.5から2.7ピクセルになると、1ピクセル幅になり、1.9から3.1(同じ幅)になると2ピクセル幅になります。

バーの代わりに線を使用できます。

ggplot(data=dat, aes(x=x, y=y)) + 
    geom_segment(aes(xend=x, yend=0), size = 0.6) 

私はあなたがまだ時々ピクセルの問題に遭遇すると思うが、それはsizeに制御することが多分簡単です。

+1

私はあなたのアイデアが 'geom_segment'で好きです!あなたの答えを受け入れる前に誰かが 'geom_bar'のための解決策を思いついたら私はちょうど待つでしょう。 – beetroot

関連する問題