R 具有性别的人口金字塔,并使用ggplot2跨两个时间段进行比较
我是R&ggplot2的新手,想知道是否有可能为男性和女性做一个人口金字塔,并在两个时间段内比较每个性别。有关详细信息,请参见屏幕截图。我在这个网站上找到了很多资源,展示了如何构建种群吡喃,但它们都只使用了一个变量,即性别。我想在同一张图表中比较性别和时间段。 非常感谢您的帮助。多谢各位R 具有性别的人口金字塔,并使用ggplot2跨两个时间段进行比较,r,ggplot2,R,Ggplot2,我是R&ggplot2的新手,想知道是否有可能为男性和女性做一个人口金字塔,并在两个时间段内比较每个性别。有关详细信息,请参见屏幕截图。我在这个网站上找到了很多资源,展示了如何构建种群吡喃,但它们都只使用了一个变量,即性别。我想在同一张图表中比较性别和时间段。 非常感谢您的帮助。多谢各位 这里有一个想法。首先,您没有准备示例数据集。因此,我创建了这个df。请注意,值(人数)对女性来说是负数 df <- data.frame(Gender = rep(c("M", &qu
这里有一个想法。首先,您没有准备示例数据集。因此,我创建了这个
df
。请注意,值
(人数)对女性来说是负数
df <- data.frame(Gender = rep(c("M", "F"), each = 20),
Age = rep(c("0-10", "11-20", "21-30", "31-40", "41-50",
"51-60", "61-70", "71-80", "81-90", "91-100"), 4),
Year = factor(rep(c(2009, 2010, 2009, 2010), each= 10)),
Value = sample(seq(50, 100, 5), 40, replace = TRUE)) %>%
mutate(Value = ifelse(Gender == "F", Value *-1 , Value))
请将此问题复制出来。这包括您尝试的示例代码(包括列出非base R包以及收到的任何错误/警告)和示例明确数据(例如,
dput(head(x))
或data.frame(x=…,y=…)
)。参考文献:,和。非常感谢您的解决方案,非常感谢。我会用我的数据核对一下。很抱歉没有包括示例数据。我将确保包含下一次所需的所有信息。非常感谢。
ggplot(df) +
geom_col(aes(fill = interaction(Gender, Year, sep = "-"),
y = Value,
x = Age),
position = "dodge") +
scale_y_continuous(labels = abs,
expand = c(0, 0)) +
scale_fill_manual(values = hcl(h = c(15,195,15,195),
c = 100,
l = 65,
alpha=c(0.4,0.4,1,1)),
name = "") +
coord_flip() +
facet_wrap(.~ Gender,
scale = "free_x",
strip.position = "bottom") +
theme_minimal() +
theme(legend.position = "bottom",
panel.spacing.x = unit(0, "pt"),
strip.background = element_rect(colour = "black"))