我有一张图表,显示植物随时间的发育情况。对于时间,我使用生长度日(它基本上是时间和温度的综合衡量标准)。现在我想在顶部添加第二个 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)))
输出:
关于r - 将辅助 x Axis 添加到 ggplot 线图,纯粹用于提供信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583473/