2015-05-05 2 views
1

Я новичок в ggplot2, и я пытаюсь получить ту же самую гистограмму, что и с hist(results, breaks = 30).Настройка разрыва гистограммы в ggplot2

Как воспроизвести одну и ту же гистограмму с помощью ggplot2? Я играю с параметром binwidthgeom_histogram, но мне трудно сделать две гистограммы одинаковыми.

+0

Какой код вы написали? – tospig

ответ

3

Если вы используете код, который вы увидите, как R решил разбить данные:

data(mtcars) 
histinfo <- hist(mtcars$mpg) 

от histinfo вы получите необходимую информацию, касающуюся перерывов.

$breaks 
[1] 10 15 20 25 30 35 

$counts 
[1] 6 12 8 2 4 

$density 
[1] 0.0375 0.0750 0.0500 0.0125 0.0250 

$mids 
[1] 12.5 17.5 22.5 27.5 32.5 

$xname 
[1] "mtcars$mpg" 

$equidist 
[1] TRUE 

attr(,"class") 
[1] "histogram" 
> 

Теперь вы можете настроить код ниже, чтобы сделать ваш ggplot гистограмму, больше похожи на базе одного. Вам придется менять оси, масштаб и цвета. theme_bw() поможет вам получить некоторые настройки по порядку.

data(mtcars) 
require(ggplot2) 
qplot(mtcars$mpg, 
     geom="histogram", 
     binwidth = 5) + 
    theme_bw() 

и измените значение binwidth на то, что вам подходит. histogram

+0

Большой вопрос, отличный ответ. Я часто задавался вопросом об этом. –

1

Добавление ответа @Konrad «s, вместо того, чтобы использовать hist вы можете использовать один из nclass.* функций непосредственно (см nclassdocumentation). Есть три функции, которые используются hist:

nclass.Sturges использует формулу Стерджес, неявно основывая бен размеры на диапазон данных.

nclass.scott использует выбор Скотта для нормального распределения на основе выполняется оценка стандартной ошибки, если это не равна нулю, где он возвращает 1.

nclass.FD использует выбор Фридмана-Diaconis на основе интер-квартили диапазон (IQR) если это не ноль, когда он возвращается к mad(x, constant = 2) и когда это 0, а также возвращает 1.

hist function по умолчанию использует nclass.Sturges.

Смежные вопросы