首页 > 解决方案 > r - 将第二个 x 轴添加到 ggplot

问题描述

我对一些人群进行了模拟。现在我想将这些人口的特定特征随时间的变化绘制为线图。共同的x轴显示代数

以下是迄今为止我的 R 代码的最小工作示例(虚拟数据):

require(ggplot2)

set.seed(3)
x <- 99:0
y <- 0.5+cumsum(rnorm(100, 0, 0.01))
xy <- data.frame(x,y)

ggplot(data=xy, aes(x=x, y=y)) +
   geom_line() +
   xlab("Generation number") +
   ylab("Character")

但是,现在我想添加第二个 x 轴,它给出现在之前的年数 (BP),假设平均生成时间是 22.5 年。因此,最低代数的值将在第二轴上具有最高值,反之亦然。知道我怎么能做到这一点吗?

非常感谢您的建议和帮助!

标签: rggplot2axis

解决方案


如果您只想添加第二个 x 轴,则在 scale_x_continuous 中使用 sec.axis ...您还可以在那里添加一些计算...

ggplot(data=xy, aes(x=x, y=y)) +
    geom_line() +
    scale_x_continuous(sec.axis=(~.+5)) +
    xlab("Generation number") +
    ylab("Character")

推荐阅读