Не показывать пустые фасеты с помощью facet_grid

#r #ggplot2

#r #ggplot2

Вопрос:

На моем графике ниже мне было интересно, как сохранить все как есть, но просто удалить пустые участки?

 library(tidyverse)
hsb <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/hsb.csv')

hsb <- mutate(hsb, sector= factor(ifelse(sector==0,"pub","cath")))
hsb <- mutate(hsb, sector= relevel(sector, ref= "pub"))

nine <- subset(hsb, sch.id %in% unique(sch.id)[1:9]) 
nine$sch.id <- factor(nine$sch.id)
ggplot(nine)   aes(ses, math)  geom_point()   facet_grid(sector~sch.id) 
  geom_smooth(method="lm",se=F, aes(color=sector))

  

введите описание изображения здесь

Комментарии:

1. Что вы имеете в виду под «удалить»? Например, 1308 содержит данные только для «cath» и ничего для «pub», поэтому он пуст.

2. Может быть, включить formula = y ~ x , чтобы удалить уродливое предупреждение?

Ответ №1:

Я думаю, что ваша огранка должна основываться только на sch.id , попробуйте:

 ggplot(nine, aes(ses, math))  
  geom_point() 
  facet_grid(.~sch.id) 
  geom_smooth(method="lm",se=F, aes(color = sector))
  

введите описание изображения здесь