Исправление несоответствия между категориальной осью x и непрерывной осью y в ggplot () - PullRequest
0 голосов
/ 25 декабря 2018

У меня проблемы с получением ggplot(), чтобы показать все непрерывные данные на моей оси y, одновременно сохраняя правильный порядок моей категориальной переменной на оси x.Вот мой текущий код:

s3 <- ggplot(summary3, aes(x = Date, y = True.Leaves, shape = Location)) +  
  geom_errorbar(aes(ymin = True.Leaves - se, ymax = True.Leaves + se), width = .1) + 
  facet_wrap(~ Vegetation) + 
  geom_point(size = 5) + 
  labs(x = "Date", y = "Seedling Counts") + 
  scale_x_discrete(limits = c("11/30/15", "10/22/16", "11/19/16", "12/14/16", "1/18/17", 
                              "2/16/17", "3/19/17", "4/17/17", "5/17/17", "6/17/17", 
                              "7/12/17", "8/6/17", "9/21/17", "10/12/17", "11/20/17", 
                              "12/14/17") )

Однако, это приводит к следующему сообщению об ошибке, которое, как я знаю, происходит, потому что ось y должна быть расширена, чтобы включить полосы ошибок, которые выходят ниже оси 0.

1: Removed 20 rows containing missing values (geom_errorbar). 
2: Removed 20 rows containing missing values (geom_point).

Моя проблема в том, что я не могу изменить масштаб оси Y, не испортив ось X.Если я добавлю + scale_y_continuous(limits = c(-2,15)) или + coord_cartesian(ylim = -2:15), сообщение об ошибке исчезнет, ​​но порядок дат на моей оси x изменится и станет упорядоченным по номеру (начиная с 18.01.17 вместо 30.11.15) хотя я явно установил эту переменную как фактор, а не целое число.То, произойдет ли это, зависит от того, является ли аргумент scale_y_continuous() или scale_x_discrete() первым в функции ggplot - в зависимости от того, кто находится первым, тот доминирует.

Я также пытался установить ось x как даты, а не как категориальную переменную, но первая дата (30.11.15) на год опережает другие даты, и я хочу, чтобы все датыраспределяться одинаково, не основываясь на том, прошло ли больше времени или нет.

Большое спасибо за вашу помощь в этом!

...