ggplot удаляет данные без предупреждений - PullRequest
0 голосов
/ 02 сентября 2018

Вот фрейм данных с датами и некоторыми случайными данными.

library(tidyverse)
dat <- tibble(
  date = as.Date(40100:40129, origin = "1899-12-30"), 
  rainfall = rnorm(30, 4)
)

Когда вы выводите данные, 30-е значение не включается в график. После того, как вы выполните код, обратите внимание, что над датой 2009-11-12 нет ни одной строки. Как заставить этот 30-й бар появляться на моем графике? Я делаю должен соблюдать ограничения, как показано ниже, по причинам, выходящим за рамки этого поста. Я также ожидал, что в моей консоли появится предупреждение о том, что данные были удалены из графика, но я не уверен, почему я их не получаю.

ggplot(dat, aes(date, rainfall)) + 
  geom_bar(stat = "identity", fill = "white", color = "grey35") + 
  theme_minimal() + 
  theme(axis.title.x = element_blank(), axis.text.x = element_text(angle=90)) + 
  scale_x_date(
    date_breaks = "1 day",
    limits = c(min(dat$date), max(dat$date))
  ) +  
  NULL

1 Ответ

0 голосов
/ 03 сентября 2018

По моему опыту, самый безопасный способ указать пределы оси - использовать coord_cartesian (и равно)

ggplot(dat, aes(date, rainfall)) + 
  geom_bar(stat = "identity", fill = "white", color = "grey35") + 
  theme(axis.title.x = element_blank(), axis.text.x = element_text(angle=90)) + 
  scale_x_date(date_breaks = '1 day') +
coord_cartesian(xlim = c(min(dat$date), max(dat$date)))

enter image description here

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