在ggplot中添加sec.axis

时间:2017-07-24 09:05:39

标签: r ggplot2

我想在ggplot的顶部添加第二个x轴。第一个x轴显示一年中的某一天,第二个x轴是根据第一个x轴日期的月份。我试过sec.axis但是没有用。

b    Alt
148  1300
122  1300
130  1300
250  2000
300  2000
244  2000

  MonthId <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Agu", 
 "Sep", 
 "Oct", "Nov", "Dec")
 FirstDay <- c(1, 32, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335,365)
 MiddleDay <- c(16, 45, 75, 105, 136, 166, 197, 228, 258, 289, 319, 350)
 g.b <- ggplot(CDD, aes(factor(Alt), b))
 g.b+
  scale_x_continuous(breaks = unique( MiddleDay), 
             sec.axis = sec_axis(~ ., breaks = unique( MiddleDay)))

1 个答案:

答案 0 :(得分:4)

我不确定我根据您的数据和描述了解您想要绘制的内容。要绘制主x轴中的日期和辅助中的月份,您可以使用以下内容:

假设您有以下数据:

JOIN

然后将MonthId <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Agu", "Sep", "Oct", "Nov", "Dec") MiddleDay <- c(16, 45, 75, 105, 136, 166, 197, 228, 258, 289, 319, 350) b <- c(148, 122, 130, 250, 300, 244, 148, 122, 130, 250, 300, 244) df <- data.frame(MonthId, MiddleDay, b) 与所需的sec_axis(~ . ...breaks

一起使用
levels

enter image description here