将辅助 x 轴添加到 ggplot 折线图,仅供参考
Add secondary x-axis to ggplot line graph, purely for information
我有一张显示植物随时间发展的图表。作为时间,我使用生长度日(它基本上是时间和温度的组合测量)。现在我想在顶部添加第二个 x 轴,显示 'real' 时间,即实验开始后的几周,以便查看者可以更清楚地了解什么时候发生了什么。由于生长度日的性质,它们无法以任何数学方式转换为周。所以我必须单独添加信息,例如 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)))
输出:
我有一张显示植物随时间发展的图表。作为时间,我使用生长度日(它基本上是时间和温度的组合测量)。现在我想在顶部添加第二个 x 轴,显示 'real' 时间,即实验开始后的几周,以便查看者可以更清楚地了解什么时候发生了什么。由于生长度日的性质,它们无法以任何数学方式转换为周。所以我必须单独添加信息,例如 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)))
输出: