При фасетировании гистограмм в ggplot ось x включает все уровни факторов. Однако не все уровни могут присутствовать в каждой группе. Кроме того, могут присутствовать нулевые значения, поэтому только по гистограмме невозможно отличить значения по оси x без данных от значений с нулевыми значениями y. Рассмотрим следующий пример:
library(tidyverse)
set.seed(43)
site <- c("A","B","C","D","E") %>% sample(20, replace=T) %>% sort()
year <- c("2010","2011","2012","2013","2014","2010","2011","2012","2013","2014","2010","2012","2013","2014","2010","2011","2012","2014","2012","2014")
isZero = rbinom(n = 20, size = 1, prob = 0.40)
value <- ifelse(isZero==1, 0, rnorm(20,10,3)) %>% round(0)
df <- data.frame(site,year,value)
ggplot(df, aes(x=year, y=value)) +
geom_bar(stat="identity") +
facet_wrap(~site)
Это данные рыбоучета, где не все участки облавливались за все годы, но иногда рыба не попадалась. Отсюда необходимость различать эти две ситуации. Например, на участке С в 2010 г. улова не было, а в 2011 г. его не ловили, и читатель не уловит разницы. Я хотел бы добавить что-то вроде «нет данных» на график за 2011 год. Может быть, можно заполнить строки, в которых отсутствуют данные, создать еще один столбец с нужным текстом, который нужно добавить, а затем включить это через geom_text
?