#r #histogram
#r #гистограмма
Вопрос:
Я схожу с ума от функции hist (). У меня есть набор данных следующим образом:
table(data)
0 1 2 3 4 5 7 8
85 7 3 4 6 1 2 1
Поэтому я ожидаю, что hist(data, labels=TRUE)
это вернет мне гистограмму с 9 ячейками, по одной для нулей, по одной для единиц и т. Д. И Со значением для каждой ячейки. Но она объединяет значения 0 и 1, и после одного дня поиска в Google я все еще не могу понять, как я могу это исправить. Я также пытался объявить количество таких ячеек, hist(data, breaks=c(0,8))
но ничего.
В качестве альтернативы я попробовал использовать histogram
lattice
пакет, и он работает нормально… но я не могу понять, как отобразить значение каждой ячейки…
Можете ли вы мне помочь в любом случае (с правильным количеством столбцов hist()
или отображением значений ячеек histogram()
)?
большое спасибо.
Комментарии:
1. Попробуйте
hist(data,right=F)
Ответ №1:
hist(...)
по умолчанию использует закрытые справа интервалы. Вы можете изменить это с помощью right=...
аргумента.
x <- c(0, 1, 2, 3, 4, 5, 7, 8)
y <- c(85, 7, 3, 4, 6, 1, 2, 1)
z <- rep(x,times=y)
par(mfrow=c(1,2))
hist(z,right=T, main="Right closed")
hist(z,right=F, main="Left Closed")
Вот эквивалент в ggplot
, который IMO немного понятнее.
library(ggplot2)
ggplot(data.frame(z), aes(x=factor(z)))
geom_histogram(fill="lightgreen", color="grey50")
Комментарии:
1. Большое спасибо за ваше отличное объяснение! Мне больше нравится ggplot2 🙂 Знаете ли вы, что я могу поместить значение столбцов поверх каждого столбца (например, регистр hist(data, labels = TRUE))?