r - 将辅助 x Axis 添加到 ggplot 线图,纯粹用于提供信息

标签 r ggplot2 axis

我有一张图表,显示植物随时间的发育情况。对于时间,我使用生长度日(它基本上是时间和温度的综合衡量标准)。现在我想在顶部添加第二个 x Axis ,显示“实时”时间,即距离实验开始几周的时间,以便观察者可以更清楚地了解何时发生了什么。由于学位日的性质,它们无法以任何数学方式转换为周。所以我必须单独添加信息,例如 1 周为 500 gdd,2 周为 800 gdd,3 周为 1400 gdd。此信息不会以任何方式与图表本身的内容相对应。

这是我的简单代码,用于绘制具有生长度日的图表。

my.df<-data.frame(ccc=seq(0,15,1),gdd=seq(0,1500,100))
ggplot(data=my.df, aes(x=gdd, y=ccc))+
  geom_line()

现在我需要的只是顶部 500、800 和 1400 gdd 处的 Axis 刻度(表示 1、2 和 3)以及表示“周”的 Axis 标签。 有办法做到这一点吗?到目前为止,我唯一的想法是将其添加到 Photoshop 中,但那是作弊:)

最佳答案

您可以使用sec_axis()来实现此目的。由于您基本上只想手动标记一些位置,因此不必担心复杂的转换。

ggplot(data=my.df, aes(x=gdd, y=ccc))+
    geom_line() +
    scale_x_continuous(sec.axis = sec_axis(
        trans = ~ .,
        name = "Weeks",
        breaks = c(500, 800, 1400), 
        labels = c(1, 2, 3)))

输出:

enter image description here

关于r - 将辅助 x Axis 添加到 ggplot 线图,纯粹用于提供信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583473/

相关文章:

database - 加快 sqlFetch()

R:使用 geom_line 访问函数内的列名

减少 grid.arrange 图之间的空间

r - 如何从多个绘图输出中选择单个图

r - 应用函数来组合列

r - Win7 R 3.2.2 RStudio 0.99.473。安装 Hmisc 包时出错

r - ggplot2:如何按颜色将图例拆分为自定义图例

r - 使用facet_wrap时在ggplot2中使用具有不同比例因子的辅助y轴

java - 调用 webservice 时绕过 HTTPS 证书验证

python , Bokeh : How to change range of datetime axis