Укажите месяцы в ggplot для квартальных данных - PullRequest
1 голос
/ 14 июня 2019

У меня есть эти данные:

test_data <- structure(list(region = c("Goulburn", "Goulburn", "Goulburn", 
"Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", 
"Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", 
"Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", 
"Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", 
"Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", "Goulburn", 
"Goulburn"), month = c("40513", "40603", "40695", "40787", "40878", 
"40969", "41061", "41153", "41244", "41334", "41426", "41518", 
"41609", "41699", "41791", "41883", "41974", "42064", "42156", 
"42248", "42339", "42430", "42522", "42614", "42705", "42795", 
"42887", "42979", "43070", "43160", "43252", "43344", "43435", 
"43525"), unemployment_rate = c(7.4, 5.6, 4.6, 4.2, 4.3, 4.5, 
4.7, 5.3, 5.2, 5.8, 5.9, 5.6, 6.1, 7.8, 8.8, 8.8, 8, 6.2, 4.9, 
5, 5.4, 5.5, 5.6, 5.2, 5.4, 6.2, 6.5, 7.4, 7.2, 6.5, 6.9, 7.1, 
7.6, 7.3), month2 = structure(c(14944, 15034, 15126, 15218, 15309, 
15400, 15492, 15584, 15675, 15765, 15857, 15949, 16040, 16130, 
16222, 16314, 16405, 16495, 16587, 16679, 16770, 16861, 16953, 
17045, 17136, 17226, 17318, 17410, 17501, 17591, 17683, 17775, 
17866, 17956), class = "Date")), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -34L))

и вставлен в этот ggplot:

ggplot(test_data, aes(month2, unemployment_rate)) +
  geom_line() + geom_point() + scale_colour_discrete(name  ="SA2") + theme(legend.position="bottom") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  labs(title = "Unemployment rate", x = NULL, y = "Unemployment rate (%)") + 
  scale_x_date(date_breaks = "3 months", date_labels = "%m-%Y")

И дает мне этот график enter image description here

Как бы я изменил месяцы, показанные в (перевернутой) оси Y?Я бы хотел, чтобы они показывали то же самое, что и данные (03, 06, 09, 12) или даже (март, июнь, сентябрь, декабрь) с годами (так, либо 03-2019, либо март-2019)?

Я пробовал несколько вещей, но не могу заставить его работать.

1 Ответ

3 голосов
/ 14 июня 2019

Вот один из подходов: указание scale_x_date(limits с первой датой и удаление заполнения с expand, равным нулю:

ggplot(test_data, aes(month2, unemployment_rate)) +
  geom_line() + geom_point() + 
  scale_colour_discrete(name  ="SA2") + 
  scale_x_date(limits = c(as.Date(min(test_data$month2)), NA),
               expand = expand_scale(0), minor_breaks = NULL,
               date_breaks = "3 months", date_labels = "%m-%Y") +
  coord_cartesian(clip = "off") +
  theme(legend.position="bottom") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  labs(title = "Unemployment rate", x = NULL, y = "Unemployment rate (%)")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...