R-ggplot中宽度变化的聚集条形图

时间:2018-09-05 05:05:06

标签: r ggplot2

我有一个带有子组的数据集,我想在条形图中显示2个数据(一个使用条形的高度,另一个使用条形的宽度)。

我将其称为条形宽度不同的群集条形图。

这是我到目前为止所拥有的:

library(ggplot2)

df <- data.frame(Year = c('2010',rep('2011', 2), rep('2012', 3), rep('2013', 4)),
                 Subyear = c('2010','2010','2011','2010','2011','2012','2010','2011','2012','2013'),
                 Size = c(100, 50, 150, 25, 45, 140, 10, 25, 50, 200),
                 Pct = runif(10, 20, 150) / 100)

ggplot(df, aes(x = Year, y = Pct, fill = Subyear, width = Size/500)) +
geom_bar(stat = "identity", position = "dodge")

这是我得到的情节。已经关闭,但我希望将亚年柱显示为群集柱(而不是重叠柱)。

感谢您的帮助!

enter image description here

1 个答案:

答案 0 :(得分:3)

只要我对您的理解正确,就可以使用position = "dodge2"

ggplot(df, aes(x = Year, y = Pct, fill = Subyear, width = Size/500)) +
    geom_col(position = "dodge2")

enter image description here

摘自ggplot2::position_dodge参考(黑体字):

  

闪避可在调整水平位置的同时保留几何图形的垂直位置。 position_dodge2是position_dodge的一种特殊情况,用于布置箱形图,宽度可以变化。 position_dodge2也可用于条形和矩形。