r - 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 年。因此,最低代数的值将在第二轴上具有最高值,反之亦然。知道我怎么能做到这一点吗?
非常感谢您的建议和帮助!
解决方案
如果您只想添加第二个 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")
推荐阅读
- python - 帮助精灵生成、精灵碰撞和分数显示
- linux - 在什么用例中我需要 WSL
- python - 如何用 pytest 计时测试?
- .net - 在我将解决方案作为 OWAPS 和 Roslyn 安全卫士的建议应用后,Veracode 仍然报告操作系统命令注入问题
- sql - 如何在 Linux 上使用动态名称执行作业 postgresql
- python - 无法在 Google App Engine 中导入数据存储区
- javascript - 在没有 TestNG 的情况下重试测试用例
- c# - 是否可以为 ASPNET.Core OData 声明多个路由
- javascript - Javascript:捕获右键单击元素的ID
- javascript - Javascript 承诺不会在 then() 中运行代码