ggplot删除数据而没有警告

时间:2018-09-02 20:59:46

标签: r date ggplot2

这是一个包含日期和一些随机数据的数据框。

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 :(得分:3)

以我的经验,指定轴限制的最安全方法是使用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