Geom_bar удалил строки, содержащие пропущенные значения, но не делает?

#r #ggplot2 #geom-bar

#r #ggplot2 #geom-bar

Вопрос:

Итак, вот фрейм данных, который я хочу отобразить:

 choc.BeanMainContinent   average
Africa                    3.16
Asia                      3.16
North America             3.20
Not Disclosed             2.95
Oceania                   3.24
South America             3.19
 

наименьшее значение равно 2,95, наибольшее — 3,24, и NAS отсутствуют.

 ggplot(aveBeanSourceCont, aes(x = choc.BeanMainContinent, y = average))   geom_bar(stat = "Identity")   ylim(2.90, 3.30)
 

Но я все еще получаю сообщение об ошибке «Удалены 6 строк, содержащих пропущенные значения (geom_bar)». Все попадает в диапазон 2.90-3.30 (и я получаю эту ошибку, даже когда расширяю этот диапазон), и значений NA нет. Насколько я понимаю, это были бы две причины этой ошибки, но ни одна из них здесь не присутствует. Что еще может вызвать эту ошибку?

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

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

1. кстати, можно также использовать geom_col() , который идентичен geom_bar(stat = "identity")

Ответ №1:

Концептуально столбчатая диаграмма всегда начинается с 0. Это означает, что установка предела, отличного от нуля, делает его «невозможным значением».

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

 library(ggplot2)
set.seed(42)
foo <- data.frame(x = letters[1:6], y = sample(6))

ggplot(foo, aes(x = x, y = y))   
  geom_col()   
  ylim(0.5, 6.5)
#> Warning: Removed 6 rows containing missing values (geom_col).

ggplot(foo, aes(x = x, y = y))   
  geom_col()   
  ylim(0, 6.5)
 

Если вы хотите установить ограничения y для «фокусировки» на определенных областях графика, используйте coord вместо:

 ggplot(foo, aes(x = x, y = y))   
  geom_col()  
  coord_cartesian(ylim = c(0.5,6))