如何在ggplot2条形图中使条形的宽度相等?

4
我正在尝试让以下图表中所有条形的宽度相等。有人能帮忙吗?这可行吗?或者有没有办法绘制这些数据?
library(ggplot2)
dat <- data.frame(x = c('I','I','I','I','II','II'),
                  y = LETTERS[1:6],
                  z = abs(rnorm(6)))

ggplot(dat, aes(y,z))+ 
  geom_bar(stat = "identity") +
  facet_wrap(~x,scales="free")

我也尝试在geom_bar中使用参数sizewidth,但是它没有起作用。 enter image description here

1个回答

8

实际上问题在于每个分面面板都被强制设定为相同的大小,然后内部图表就会扩展以填充所有可用空间。使用 facet_grid 可以调整每个分面面板的空间大小(但是使用 facet_wrap 似乎无法这样做)。尝试:

ggplot(dat, aes(y,z))+ 
  geom_bar(stat = "identity") +
  facet_grid(~x,scales="free", space="free_x")

这让我

输入图像描述


scales = 'free'似乎不起作用。我真的想要那个选项。 - Koundy
@MrFlick,我正在尝试在Shiny中生成一个类似的条形图,位置为“dodge”,但是所有条都显示为100%。如果您能指出我的错误,那将非常棒。感谢您并对以这种方式联系您表示歉意。我已经在http://stackoverflow.com/questions/41078480/r-shiny-ggplot-bar-and-line-charts-with-dynamic-variable-selection-and-y-axis-to发布了问题。 - user1412

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接