Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 具有性别的人口金字塔,并使用ggplot2跨两个时间段进行比较_R_Ggplot2 - Fatal编程技术网

R 具有性别的人口金字塔,并使用ggplot2跨两个时间段进行比较

R 具有性别的人口金字塔,并使用ggplot2跨两个时间段进行比较,r,ggplot2,R,Ggplot2,我是R&ggplot2的新手,想知道是否有可能为男性和女性做一个人口金字塔,并在两个时间段内比较每个性别。有关详细信息,请参见屏幕截图。我在这个网站上找到了很多资源,展示了如何构建种群吡喃,但它们都只使用了一个变量,即性别。我想在同一张图表中比较性别和时间段。 非常感谢您的帮助。多谢各位 这里有一个想法。首先,您没有准备示例数据集。因此,我创建了这个df。请注意,值(人数)对女性来说是负数 df <- data.frame(Gender = rep(c("M", &qu

我是R&ggplot2的新手,想知道是否有可能为男性和女性做一个人口金字塔,并在两个时间段内比较每个性别。有关详细信息,请参见屏幕截图。我在这个网站上找到了很多资源,展示了如何构建种群吡喃,但它们都只使用了一个变量,即性别。我想在同一张图表中比较性别和时间段。 非常感谢您的帮助。多谢各位


这里有一个想法。首先,您没有准备示例数据集。因此,我创建了这个
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"))