我有一个数据框,总结了城市和农村地区不同年龄组不同家庭规模的人口数量。我希望将堆积图中的人口值可视化,以便每个部分的长度对应于农村或城市地区的年龄组中居住在该家庭规模的人口计数。到目前为止,我已创建了这两个图,但这两个图都不是我想要的。
第一次努力:
第二次努力:
它们不是我想要的,因为它们在城市和农村地区使用相同颜色的家庭尺寸(s1:s7)。相反,我希望农村地区有7种绿色阴影,城市地区有7种红色阴影,因此可以在情节中轻松区分这两种设置。
ggplot2中是否有任何方法可以根据两个标准(城市与农村,家庭规模)显示值?如果是这样,怎么能在传奇中反映出来?
非常感谢您的帮助!
答案 0 :(得分:0)
控制透明度(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
结果如下: