Как удалить na из графика в ggplot2 (с примером)


Вы можете использовать следующий базовый синтаксис для удаления значений NA из графика в ggplot2:

 library (ggplot2)

ggplot(data=subset(df, ! is. na (this_column)), aes(x=this_column)) +
  geom_bar()

В этом конкретном примере создается гистограмма и удаляются все строки из фрейма данных, где значение NA отображается в столбце this_column .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: удалить NA из графика в ggplot2.

Предположим, у нас есть следующий кадр данных, содержащий информацию о количестве очков, набранных баскетболистами разных команд:

 #create data frame
df <- data. frame (team=c('A', 'A', NA, NA, 'B', 'B', 'B', 'B'),
                 dots=c(22, 29, 14, 8, 5, 12, 26, 36))

#view data frame
df

  team points
1 to 22
2 to 29
3 <NA> 14
4 <NA> 8
5 B 5
6 B 12
7 B 26
8 B 36

Теперь предположим, что мы пытаемся создать гистограмму в ggplot2, чтобы визуализировать количество вхождений каждой команды:

 library (ggplot2)

#create bar plot to visualize occurrences by team
ggplot(df, aes(x=team)) +
  geom_bar() 

удалить значения NA в ggplot2

Обратите внимание, что на графике автоматически создается полоса для отображения значений NA в столбце «Команда» .

Чтобы удалить эту полосу из графика, мы можем использовать функцию subset() для подмножества фрейма данных, чтобы включить только те строки, где значение в столбце команды не равно NA:

 library (ggplot2)

#create bar plot to visualize occurrences by team and remove NA
ggplot(data=subset(df, ! is. na (team)), aes(x=team)) +
  geom_bar() 

На этой гистограмме по-прежнему отображается количество вхождений значений «A» и «B» в столбце «Команда» , но она больше не включает полосу для отображения количества вхождений значений NA.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:

Как удалить метки осей в ggplot2
Как удалить легенду в ggplot2
Как удалить линии сетки в ggplot2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *