0

我一直在使用 R 和 ggplot 处理一些流行病学数据。我使用以下代码绘制了人口金字塔:

数据可在此处使用,使用此处的多图脚本。

plot1 <- ggplot(pt.indig, aes(x=agecat, fill=gender)) +
   geom_bar(position="dodge") +
   scale_fill_brewer("Gender", palette="Set1") + 
   scale_y_continuous(breaks=c(0:10), minor_breaks=NULL) + coord_flip() +
   labs(y="Indigenous Patients", x=NULL) + coord_flip() +
   theme_bw() + theme(axis.text.y=element_text(hjust=-0.1))

plot2 <- ggplot(pt.nind, aes(x=agecat, fill=gender)) + 
   geom_bar(aes(y=..count..*(-1)), position="dodge") +
   scale_fill_brewer(palette="Set1") + coord_flip() + 
   scale_y_continuous(breaks=seq(-11,0,1), labels=abs(seq(-11,0,1))) +
   labs(x=NULL, y="Non-Indigenous Patients") + 
   theme(legend.position="none", axis.text.y=element_blank(), axis.ticks.y=element_blank())

multiplot(plot2, plot1, cols=2)

生成此图: 罂粟

我想对图表做的是:

  1. 使两个地块的相对大小相同
    • 水平,所以条是成比例的
    • 垂直,因此年龄类别正确排列
  2. 将左图稍微靠近 y 轴标签(或跨标签,但使用 hjust 会替换较短的标签(NA 和 <10 年旧标签))
  3. 让 Non-indig 10-14 岁的男性吧台显示与其他人一样的宽度
  4. (理想情况下,使 NA 条颜色相同,但不如其他条重要)

非常感谢帮助。

4

0 回答 0