首页 > 解决方案 > 用日期和两个轴绘制条形图 - R ggplot2

问题描述

请帮助指导绘制情节的正确方法...

我有一个包含一些纪念碑的数据集,以及它们被列为市政遗产的年份

纪念碑
一个 1990
1990
C 1993
D 1995
1996

所有的纪念碑都是不同的和独特的,但有一些共同点。

我想用所有年份来可视化xx轴,一个条形图,其中包含每年刻有纪念碑的数量(甚至显示那些没有刻有任何纪念碑的年份以可视化时间间隔)

此外,如果有一个辅助轴,并用刻有纪念碑的累积总和画一条线,那就太棒了。

最终结果将与此类似

提前致谢!

标签: rggplot2

解决方案


在 ggplot2 中使用辅助轴要记住的一般情况是(1)您需要自己转换输入数据,以及(2)您需要在辅助轴中指定逆变换。这是一个带有一些虚拟数据的示例,我们仅使用10.

library(ggplot2)

df <- data.frame(
  year = sample(1990:2020, 50, replace = TRUE)
)

scale <- 10 # scaling factor for secondary axis

ggplot(df, aes(year)) +
  geom_bar(width = 0.5) +
  geom_line(aes(y = after_stat(cumsum(count)/scale)),
            stat = "count", colour = "red") +
  scale_y_continuous(
    sec.axis = sec_axis(~ .x * scale, name = "cumulative count")
  )

reprex 包于 2021-02-03 创建(v1.0.0)

或许还需要指出的是,您可以使用 获得每年的累积计数aes(y = after_stat(cumsum(counts))


推荐阅读