r-将第二个x轴添加到ggplot

时间:2020-08-21 08:59:02

标签: r ggplot2 axis

我对某些人群进行了模拟。现在,我想将这些人口的特定特征随时间的变化绘制为线图。 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年。因此,最低代数的值将在第二轴上具有最高值,反之亦然。知道我怎么能做到吗?

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

2 个答案:

答案 0 :(得分:1)

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

print(float(account_balance_value) * 0.1)

答案 1 :(得分:0)

好的,感谢@sambold。这是根据她/他的建议的解决方案:

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