Удалите одну легендарную клавишу из графика в ggplot2 [duplicate]

Просто для удовольствия: простое решение для JavaScript.

document.querySelectorAll('.container').forEach(clear);

function clear(element) {
  element.childNodes.forEach(check, element);
}

function check(item) {
  if (item.nodeType === 3) this.removeChild(item);
}
span {
  display: inline-block;
  width: 100px;
  background-color: palevioletred;
}
<p class="container">
  <span> Foo </span>
  <span> Bar </span>
</p>

15
задан joran 20 June 2013 в 15:31
поделиться

5 ответов

Просто обновите ответ @ rafa.pereira. Поскольку ggplot2 является частью tidyverse, имеет смысл использовать удобные tidyverse функции, чтобы избавиться от NA.

library(tidyverse)
airquality %>% 
        drop_na(Ozone) %>%
        ggplot(aes(x = Ozone))+
        geom_bar(stat="bin")

Обратите внимание, что вы также можете использовать drop_na() без спецификации столбцов; то все строки с NA в любом столбце будут удалены.

6
ответ дан ikashnitsky 25 August 2018 в 09:31
поделиться

С моей точки зрения, эта ошибка «Ошибка: эстетика должна быть либо одной, либо той же длиной, что и данные» относится к аргументу aes (x, y). Я попробовал na.omit () и работал просто отлично мне.

0
ответ дан Isis Costa 25 August 2018 в 09:31
поделиться

Не уверен, что вы решили проблему. Для этой проблемы вы можете использовать функцию «фильтр» в пакете dplyr. Идея состоит в том, чтобы отфильтровать наблюдения / строки, значения переменных которых не являются NA. Затем вы создадите график с этими отфильтрованными наблюдениями. Вы можете найти мои коды ниже, и обратите внимание, что все имя фрейма данных и переменной копируется из подсказки вашего вопроса. Кроме того, я предполагаю, что вы знаете операторов труб.

library(tidyverse) 

MyDate %>%
   filter(!is.na(the_variable)) %>%
     ggplot(aes(x= the_variable, fill=the_variable)) + 
        geom_bar(stat="bin") 

Вы должны уметь удалить раздражающие NA на вашем участке. Надеюсь, что это работает:)

3
ответ дан Jay Chieh Kao 25 August 2018 в 09:31
поделиться

Вы можете использовать функцию subset внутри ggplot2. Попробуйте

library(ggplot2)

data("iris")
iris$Sepal.Length[5:10] <- NA # create some NAs for this example

ggplot(data=subset(iris, !is.na(Sepal.Length)), aes(x=Sepal.Length)) + 
geom_bar(stat="bin")
21
ответ дан rafa.pereira 25 August 2018 в 09:31
поделиться

Кроме того, будет добавлено na.rm = TRUE к вашему geom_bar ().

ggplot(data = MyData,aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + 
   geom_bar(stat="bin", na.rm = TRUE)

Я столкнулся с этой проблемой с циклом в временном ряду, и это исправило это. Отсутствующие данные удаляются, и результаты в противном случае не могут быть изменены.

2
ответ дан regents 25 August 2018 в 09:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: