Neste artigo, aprenderá a usar a função hist() para criar histogramas na programação R com a ajuda de numerosos exemplos.
Histograma pode ser criado usando a função hist()
em linguagem de programação R. Esta função inclui um vector de valores para o qual o histograma é plotado.
Deixe-nos usar o conjunto de dados incorporado airquality
que tem medições diárias da qualidade do ar em Nova Iorque, de Maio a Setembro de 1973.-R documentação.
> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...
Utilizaremos o parâmetro de temperatura que tem 154 observações em grau Fahrenheit.
Exemplo 1: Histograma simples
Temperature <- airquality$Temphist(Temperature)
Vemos acima que existem 9 células com quebras igualmente espaçadas. Neste caso, a altura de uma célula é igual ao número de observações que caem nessa célula.
Podemos passar em parâmetros adicionais para controlar o aspecto da nossa parcela. Pode ler sobre eles na secção de ajuda ?hist
.
algumas das frequentemente utilizadas são, main
para dar o título, xlab
e ylab
para fornecer etiquetas para os eixos, xlim
e ylim
para fornecer a gama dos eixos, col
para definir a cor, etc.
Adicionalmente, com o argumento freq=FALSE
podemos obter a distribuição de probabilidade em vez da frequência.
Exemplo 2: Histograma com parâmetros adicionados
# histogram with added parametershist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="darkmagenta",freq=FALSE)
Nota que o eixo y é rotulado densidade em vez de frequência. Neste caso, a área total do histograma é igual a 1.
Valor de retorno de hist()
A função hist()
retorna uma lista com 6 componentes.
> h <- hist(Temperature)> h$breaks 55 60 65 70 75 80 85 90 95 100$counts 8 10 15 19 33 34 20 12 2$density 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255 0.044444444 0.026143791 0.015686275 0.002614379$mids 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5$xname "Temperature"$equidist TRUEattr(,"class") "histogram"
Vemos que um objecto da classe histogram
é devolvido, o que tem:
-
breaks
– lugares onde as quebras ocorrem, -
counts
– o número de observações que caem nessa célula, -
density
– a densidade de células,mids
os pontos médios das células, -
xname
o x nome do argumento e -
equidist
um valor lógico indicando se as quebras são igualmente espaçadas ou não.
Podemos usar estes valores para processamento posterior.
Por exemplo, no exemplo seguinte, usamos os valores de retorno para colocar as contagens no topo de cada célula usando a função text()
.
Exemplo 3: Usar valores de retorno de Histograma para etiquetas usando texto()
h <- hist(Temperature,ylim=c(0,40))text(h$mids,h$counts,labels=h$counts, adj=c(0.5, -0.5))
Definindo o Número de Quebras
Com o argumento breaks
podemos especificar o número de células que queremos no histograma. No entanto, este número é apenas uma sugestão.
R calcula o melhor número de células, tendo em mente esta sugestão. Seguem-se dois histogramas sobre os mesmos dados com um número de células diferente.
Exemplo 4: Histograma com diferentes quebras
hist(Temperature, breaks=4, main="With breaks=4")hist(Temperature, breaks=20, main="With breaks=20")
Na figura acima vemos que o número real de células plotadas é maior do que o que tínhamos especificado.
p> Também podemos definir pontos de quebra entre as células como um vector. Isto torna possível traçar um histograma com intervalos desiguais. Neste caso, a área da célula é proporcional ao número de observações que caem dentro dessa célula.
Exemplo 5: Histograma com largura não uniforme
hist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="chocolate",border="brown",breaks=c(55,60,70,75,80,100))