根据数据中的另一列在 ggplot 中绘制辅助 x 轴

Plotting a secondary x-axis in ggplot based on another column in the data

我正在努力寻找是否可以使用数据集中完全不同的列来绘制辅助 x 轴(如果可能,在线图的顶部)。我已经找了一段时间了,如果这个问题已经得到解答,我深表歉意。例如:

Day <- c(1:10)
Revenue <- c(100,200,300,400,550,600,750,800,975,1000)
Date <- c("1/1","1/5","1/10","1/11","1/14","1/15","1/18","1/21","1/28","1/31")
a <- data.frame(Day,Revenue,Date)

我可以在 x 轴上绘制“天”,在 y 轴上绘制“收入”:

ggplot(a,(aes(Day,Revenue))) + geom_line(aes(y = Revenue))

但是,是否可以在与主 x 轴(“日”)匹配的次 x 轴上将相应的“日期”包含在图表的顶部?在此先感谢您的帮助!

实现所需结果的一个选项是使用 dup_axis 并使用标签函数,该函数将 Date 列中的值分配给选择为 Day 的值初级音阶的休息时间:

library(ggplot2)

dup_labels <- function(x) a$Date[match(x, a$Day)]

ggplot(a,(aes(Day,Revenue))) + geom_line(aes(y = Revenue)) +
  scale_x_continuous(breaks = 1:10, sec.axis = dup_axis(labels = dup_labels))