如何使用减法(age/year 事件)使用 ggplot 插入辅助 x 轴

How to insert a secondary x axis with ggplot using subtraction (age/year of event)

我有一个包含 1000 行的数据集,其中一列给出了每个事件发生的年份。我的目标是生成一个年龄直方图,然后在图上放置一个辅助 x 轴,其中包含每个事件的年份。但是,我发现的每个辅助轴示例都使用加法或乘法进行转换;我似乎无法弄清楚如何在那里进行减法。最古老的事件发生在 1872 年。

这是我的代码:

df <- df %>% mutate(age = 2022 - Year)

# Plot
g <- ggplot(df, aes(x = age))
g <- g + geom_histogram(fill = "firebrick3", color = "white")
g <- g + scale_x_continuous(breaks = breaks_pretty(0:160, n = 10), 
        sec.axis = sec_axis(~. + 1872, name = "Year"))
g <- g + labs(x = "Age (years)", y = "Count")
g

直方图是正确的;常规的 x 轴和 y 轴是正确的,颜色也很好。副 x 轴很近,但需要向后移动;随着年龄从左到右增加,事件发生的年份应该从左到右减少。

这是怎么做到的?

我想你想显示事件的年份,所以由于 Age 重新表述了与 2022 相关的年份,将其转换回将采用 ~ 2022 - . 的形式,其中 . 代表基础x 图中的值。

ggplot(df, aes(x = age)) + 
  geom_histogram(fill = "firebrick3", color = "white") + 
  scale_x_continuous(breaks = scales::breaks_pretty(0:160, n = 10), 
                     sec.axis = sec_axis(~ 2022 - ., name = "Year", 
                                         breaks = scales::breaks_width(20))) +
  labs(x = "Age (years)", y = "Count")