在R中使用ggplot2绘制条形图时如何设置不同宽度的条形?

27

我想生成一个条形图,条形的宽度由一个整数变量(样本大小)决定。添加"width = variableName"似乎不起作用。有没有已经确定的方法来做到这一点?这里是一些虚拟数据和代码。在这个例子中,我希望条形的宽度是变量d的函数。

dat <- data.frame(a=c("A", "B", "C"), b=c(0.71, 0.94, 0.85), d=c(32, 99, 18))

ggplot(dat, aes(x=a, y=b, fill=a)) +  
geom_bar(colour="black", size=.3) + 
theme_bw()  
1个回答

40

你可以尝试在对向量 d 进行常数缩放之后,使用 width= 属性进行调整。

ggplot(dat, aes(x=a, y=b, width=d/100)) + 
  geom_bar(aes(fill=a), stat="identity", position="identity")

在此输入图片描述


@chi:太好了,非常感谢。我已经尝试过这种方法,但是没有加上“stat”和“position”参数,它并没有影响到条形图的宽度。 - Steve
能否在图例中添加条形的宽度? - fstevens
谢谢!我漏掉了位置参数 :) - Felipe Gerard
你会如何将这应用到百分比图表中,例如 https://dev59.com/YVYN5IYBdhLWcg3wv6Sj 的答案? - Skyler

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