2015-01-11 2 views
1

Я столкнулся со многими подобными ситуациями, такими как следующий. Я пытаюсь создать простую гистограмму, как так:Как избежать зазоров между полосками гистограммы в R?

coins.2 <- c(-2,0,0,2) 
hist(coins.2,freq=F) 

Результат таков:

enter image description here

Мой вопрос
Что это самый простой способ, чтобы сделать гистограмму без зазоров между бары?

ответ

6

Самый простой способ, которым я могу думать, чтобы суммировать результаты, используя таблицу, а затем построить что резюме:

barplot(table(coins.2))

или если вы хотите, чтобы прилипнуть к выходу плотности, разделить реферат по общее число наблюдений

barplot(table(coins.2)/length(coins.2)) 

Но, пожалуйста, помните, что существует гистограмма, показывающая это пустое пространство. Если бы это были номинальные категории, это не было бы большой проблемой, но если это фактические значения, лучше использовать решение гистограммы и показать пустое пространство.

+2

Проблема в том, что значения дискретны, но функция 'hist' рассматривает их как непрерывные. Между целыми значениями нет значений. Я считаю, что лучшим решением здесь является дискретная гистограмма, которая идет от -2 до 2, с барами, центрированными по каждому целочисленному значению, и с «барами» нулевой высоты (пустые пространства) в -1 и 1. В этом случае что-то вроде 'coins.2 = factor (c (-2,0,0,2), levels = seq (-2,2,1)) barplot (таблица (монеты.2))' – eipi10

+1

Другая возможность центрирования баров над каждое целое значение без создания факторов - 'hist (coins.2, breaks = seq (-2.5,2.5,1)). – eipi10

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