我有一个图表,显示随着时间的推移植物的生长。随着时间的流逝,我使用度数天(基本上是时间和温度的综合度量)。现在,我想在顶部添加第二个x轴,以显示“真实”时间,即从实验开始几周,以便观众可以更清楚地了解何时发生了什么。由于度数天数的性质,它们无法以任何数学方式转换为数周。因此,我将不得不单独添加信息,例如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,分别是1、2和3,以及轴标签为“weeks”。
有办法吗?到目前为止,我唯一的想法是将其添加到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)))

输出:

r - 纯粹将x轴添加到ggplot线图中-LMLPHP

10-06 16:14