ggplot2 的特殊类型的堆积图

Special type of stacked plots by ggplot2

我有一个数据框,它总结了城市和农村地区不同年龄组的不同家庭人数。我想在堆叠图中可视化人口值,以便每个部分的长度对应于居住在农村或城市地区某个年龄组的该家庭规模的人口计数。到目前为止,我已经创建了这两个图,但都不是我想要的。

第一次努力:

第二次努力:

它们不是我想要的,因为它们在城市和农村地区使用相同的颜色表示家庭规模 (s1:s7)。相反,我想为农村地区设置 7 种绿色阴影,为城市地区设置 7 种红色阴影,以便在图中可以轻松区分这两种设置。

ggplot2 中是否有任何方法可以显示基于两个标准(城市与农村、家庭规模)的值?如果是的话,怎么会体现在传说中呢?

非常感谢您的帮助!

控制透明度(alpha)可能会给您带来理想的情节?我和@alistaire 在一起,下次你应该给我们数据或一大块可重现的数据生成代码。

下面是我的解决方案

require(ggplot2)
# Simulate some data
n <- 1000
set.seed(1234)
df <- data.frame(urban = as.factor(runif(n)<0.3), 
             hsize = as.factor(sample(1:7,n,replace = TRUE)),
             age = as.factor(sample(1:20,n,replace = TRUE, prob = 1/(sqrt(abs(1:20-10))+1)) ))

c <- ggplot(df, aes(age,fill = urban, alpha = hsize))
c <- c + geom_bar()
c

结果如下所示: