R在ggplot中的coord_flip()之后调整条形之间的空间

sal*_*mon 7 r ggplot2

我创建了一个图表ggplot

我已经设置了每个条的宽度,但我还想将条之间的间距设置为某个值(例如,我想将红色标记的间距减小到 0.1)?我知道有像 position_dodge 这样的选项,但它似乎不能与 coord_flip() 结合使用。

这篇相关文章中,建议使用主题(aspect.ratio = .2),但这不允许额外设置条的特定宽度。

有什么建议可以实现这一目标吗?

代码:

library(ggplot2)

set.seed(0)
numbers <- runif(5, 0, 10)
names <- LETTERS[seq(1, 5)]
df <- cbind.data.frame(names, numbers)

ggplot(data = df, aes(x = names, y = numbers)) +
  geom_bar(stat = "identity", fill = "blue", width = 0.30) +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Koe*_*enV 2

我认为解决方案是结合

  • width的参数(geom_bar()填充为条保留的空间)
  • 以及aspect ratio的参数theme(),它垂直挤压图,导致出现“小”条形。

使用以下代码:

library(ggplot2)
    ## your data
    set.seed(0)
    numbers <- runif(5, 0, 10)
    names <- LETTERS[seq(1, 5)]
    df <- cbind.data.frame(names, numbers)       ## corrected args
    
    ggplot(data = df, aes(x = names, y = numbers)) + 
      geom_bar(stat="identity", 
               fill = "blue", 
               width=0.9) +            ### increased
      theme(aspect.ratio = .2) +       ### aspect ratio added
      coord_flip()
Run Code Online (Sandbox Code Playgroud)

你会得到下图:

在此输入图像描述