如何在 ggplot 中分层轴标签?

mmy*_*g77 2 r ggplot2

我的数据采用以下结构:

month <- c("May", "June", "July", "May", "June", "July")
year <- c("2015", "2015", "2015", "2016", "2016", "2016")
value <- c(1:3, 3:1)
df <- data.frame(month, year, value)
Run Code Online (Sandbox Code Playgroud)

(实际上,这两年的数据都从 1 月到 12 月,这只是一个可重复的简短示例。)

我正在做一个value使用 ggplot的时间序列图(假设我plot.ts()因为太复杂而无法在这里解释的原因而无法使用)。我如何将 x 轴的标签分层,以便每个刻度线都标有月份,但在其下方还有另一个带有年份的标签,所以我得到类似的信息:

-------+-------+-------+----//---+-------+-------+-----
      May     June    July      May     June    July
              2015                      2016
Run Code Online (Sandbox Code Playgroud)

Wie*_*314 5

我不会制作两个轴,而只制作一个,并带有带有换行符的调整标签。该示例显示了如何在每个月下方添加年份。我习惯只将年份放在 1 月以下,如果 januari 不在那里,则绘制该年的第一个月。您可以根据自己的喜好调整标签的准备。

df$lab <- factor(1:6, labels = paste0(month,"\n",year))
ggplot(df, aes(x = lab, y = value)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明