Как удалить NA из facet_wrap в ggplot2? - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь использовать facet_wrap для создания многоугольной карты в ggplot2.У меня есть два факторных уровня (соя, кукуруза) в моей переменной «урожай». Однако я получаю три графика: соя, кукуруза и один со значениями NA.Кроме того, значения NA не отображаются в первых двух фасетах -

вот мой код для создания карты:

ggplot(study_area.map, aes(x=long, y=lat, group=group)) + 
  geom_polygon(aes(fill=brazil_loss_new2)) + 
  geom_path(colour="black") + 
  facet_wrap(~crop, ncol=2, drop=T) + 
  scale_fill_brewer(na.value="grey", palette="Blues", 
    name="Average production lossess\n per municipality", 
    breaks = levels(study_area.map$brazil_loss_new2), 
    labels = levels(study_area.map$brazil_loss_new2)) + 
  theme() + 
  coord_fixed()

, и вот что я получаю:

enter image description here

Если я использую na.omit, я получаю следующий рисунок (что лучше, но все еще отсутствуют значения NA на первых двух графиках)

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

Включение строк для каждой переменной и муниципалитета независимо от того, представляет ли интересующая переменная NA или нет, наконец, решает проблему.Вот что я искал:

Потери урожая по муниципалитетам со значениями NA

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Вы можете удалить NA на месте при вызове функции ggplot.Удалите NA в основной функции данных.Таким образом, они не будут строить их

ggplot(data = study_area.map[!(is.na(study_area.map[$brazil_loss_new2)),], aes(x=long, y=lat, group=group))+ 
geom_polygon(aes(fill=brazil_loss_new2))+ 
geom_path(colour="black")+ facet_wrap(~crop, ncol=2, drop=T)+ scale_fill_brewer(na.value="grey", palette="Blues", name="Average production lossess\n per municipality", breaks =levels(study_area.map$brazil_loss_new2), labels=levels(study_area.map$brazil_loss_new2))+ 
theme()+ 
coord_fixed()
0 голосов
/ 29 января 2019

Включает ли na.omit() вызов данных, что вы хотите?

ggplot(na.omit(study_area.map), aes(x=long, y=lat, group=group)) + 
  geom_polygon(aes(fill=brazil_loss_new2)) + 
  geom_path(colour="black") + 
  facet_wrap(~crop, ncol=2, drop=T) + 
  scale_fill_brewer(na.value="grey", palette="Blues", 
    name="Average production lossess\n per municipality", 
    breaks = levels(study_area.map$brazil_loss_new2), 
    labels = levels(study_area.map$brazil_loss_new2)) + 
  theme() + 
  coord_fixed()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...