2016-05-31 70 views
3

在條數很多的條形圖中,出現條形間距和/或條形寬度變得不連續的問題,也隨着圖形寬度的變化而變化。防止帶有許多條的geom_bar中的incosistent間距/條寬度

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和整體情節大小無濟於事。

enter image description here

針對alistaire的評論這裏是從RStudio前面幾小節的屏幕截圖。綜觀前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個正值有條之間的間隔/條比第二組3個正值那裏的窄酒吧/酒吧之間沒有空間更寬。

enter image description here

+1

我不相信寬度實際上是不一致的;他們只是堆放在一起,所以有些看起來更寬或更窄。不過,每個單獨的欄仍然顯示爲相同的寬度。 – alistaire

+2

它可能只是有限大小像素的效果 –

+0

@alistaire請參閱我的編輯。或者,也許我只是盯着這個陰謀太久了? ;) – beetroot

回答

2

我認爲這是一個像素的問題。如果條的x從1.5到2.7像素,則它將是一個像素寬,如果它從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