4

I want to make two lines of X axis labels in ggplot.

enter image description here

In this plot, I want to add one more line of label below each specified year. Something like

1990 1995 2000 2005 2010 cold warm warm cold warm

This is my code for making this plot

ggplot(subset(dat, countryid %in% c("1")),  aes(date, 
nonpartisan))+geom_line(aes(color=countryid), color="dodgerblue1", 
size=1.4)+geom_line(aes(date, reshuffle), color="gray")+ theme_bw()

Is there any way to make one more line of label by creating a column specifically for the labels?

Thanks!

user3077008
  • 837
  • 4
  • 13
  • 24
  • possible duplicate of [Multi-row x-axis labels in ggplot line chart](http://stackoverflow.com/questions/20571306/multi-row-x-axis-labels-in-ggplot-line-chart) – Henrik Dec 11 '14 at 08:38

1 Answers1

14

You can just add custom labels via scale_x_continuous (or scale_x_date, if it is actually in Date format).

ggplot(subset(dat, countryid %in% c("1")),  aes(date, nonpartisan)) +
  geom_line(aes(color=countryid), color="dodgerblue1", size=1.4) +
  geom_line(aes(date, reshuffle), color="gray") + 
  theme_bw() +
  scale_x_continuous(name = 'date', 
                     breaks = c('1990', '1995', '2000', '2005', '2010'), 
                     labels = c('1990\ncold', '1995\nwarm', '2000\nwarm', '2005\ncold', '2010\nwarm'))
shadow
  • 21,823
  • 4
  • 63
  • 77