По умолчанию функция hist() в R использует правило Стерджеса, чтобы определить, сколько бинов использовать в гистограмме.
Правило Стерджеса использует следующую формулу для определения оптимального количества интервалов для использования в гистограмме:
Оптимальные интервалы = ⌈log 2 n + 1⌉
куда:
- n: общее количество наблюдений в наборе данных.
- ⌈ ⌉: Символы, означающие «потолок» — т. е. округлить ответ до ближайшего целого числа.
Например, если в наборе данных 31 наблюдение, правило Стерджа будет использовать следующую формулу для определения оптимального количества бинов для использования в гистограмме:
Оптимальные интервалы = ⌈log 2 (31) + 1⌉ = ⌈4,954 + 1⌉ = ⌈5,954⌉ = 6 .
Согласно правилу Стерджеса, мы должны использовать 6 бинов на гистограмме для визуализации этого набора данных.
Если вы используете функцию hist() в R, правило Стерджеса будет использоваться для автоматического выбора количества интервалов для отображения на гистограмме.
hist(data)
Даже если вы используете аргумент breaks , чтобы указать другое количество используемых бинов, R будет использовать его только как «предложение» о том, сколько бинов использовать.
hist(data, breaks= 7 )
Однако вы можете использовать следующий код, чтобы заставить R использовать определенное количество интервалов в гистограмме:
#create histogram with 7 bins
hist(data, breaks = seq(min(data), max(data), length. out = 8 ))
Примечание.Вы должны использовать длину n+1 для length.out, где n — желаемое количество бинов.
В следующем примере показано, как использовать этот код на практике.
Пример: укажите разрывы гистограммы в R
Предположим, у нас есть следующий набор данных в R с 16 значениями:
#create vector of 16 values
data <- c(2, 3, 3, 3, 4, 4, 5, 6, 8, 10, 12, 14, 15, 18, 20, 21)
Если мы используем функцию hist() , R создаст следующую гистограмму с 5 интервалами:
#create histogram
hist(data)

Примечание.R использовал правило Стерджеса, чтобы определить, что 5 бинов являются оптимальным количеством бинов для визуализации набора данных с 16 наблюдениями.
Если мы попытаемся использовать аргумент breaks , чтобы указать 7 интервалов для использования в гистограмме, R воспримет это только как «предложение» и вместо этого решит использовать 10 интервалов:
#attempt to create histogram with 7 bins
hist(data, breaks= 7 )

Однако мы можем использовать следующий код, чтобы заставить R использовать 7 бинов в гистограмме:
#create histogram with 7 bins
hist(data, breaks = seq(min(data), max(data), length. out = 8 ))

Обратите внимание, что результатом является гистограмма с 7 равноотстоящими интервалами.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как создать гистограмму относительной частоты в R
Как построить несколько гистограмм в R