我有一个带有子组的数据集,我想在条形图中显示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")
这是我得到的情节。已经关闭,但我希望将亚年柱显示为群集柱(而不是重叠柱)。
感谢您的帮助!
答案 0 :(得分:3)
只要我对您的理解正确,就可以使用position = "dodge2"
ggplot(df, aes(x = Year, y = Pct, fill = Subyear, width = Size/500)) +
geom_col(position = "dodge2")
摘自ggplot2::position_dodge
参考(黑体字):
闪避可在调整水平位置的同时保留几何图形的垂直位置。 position_dodge2是position_dodge的一种特殊情况,用于布置箱形图,宽度可以变化。 position_dodge2也可用于条形和矩形。