防止 geom_bar 中具有多个条形的间距/条形宽度不一致

bee*_*oot 5 r ggplot2

在具有大量条形的条形图中,会出现条形之间的间距和/或条形宽度变得不一致的问题,并且也会随着图的宽度的变化而变化。

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")
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?我尝试调整width整体情节大小,但无济于事。

在此输入图像描述

为了回应 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
Run Code Online (Sandbox Code Playgroud)

..对我来说,显然前 3 个正值的条形之间有空间/条形比第二组 3 个正值更窄,其中条形之间没有空间/条形更宽。

在此输入图像描述

tim*_*cas 6

我认为这是一个像素问题。如果条形的 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) 
Run Code Online (Sandbox Code Playgroud)

我认为有时您仍然会遇到像素问题,但使用size.