Histograma é uma representação gráfica da distribuição de frenquências de uma massa de medição, normalmente um gráfico de barras verticais. Tal gráfico é composto por retângulos justapostos em que a base de cada um deles corresponde ao intervalo de classe e a sua altura à respectiva frequência.
Histograma não é gráfico de barras.
altura = c(1.3, 1.33, 1.4, 1.42, 1.45, 1.5, 1.5, 1.52, 1.55, 1.56, 1.58, 1.6, 1.62, 1.64, 1.65, 1.67, 1.68, 1.68, 1.7, 1.72, 1.72, 1.74, 1.8, 1.83, 1.85)
altura
## [1] 1.30 1.33 1.40 1.42 1.45 1.50 1.50 1.52 1.55 1.56 1.58 1.60 1.62 1.64
## [15] 1.65 1.67 1.68 1.68 1.70 1.72 1.72 1.74 1.80 1.83 1.85
Podemos gerar um gráfico de barras com esses dados, porém não será possível verificar o comportamento dessa distribuição.
freq= table(altura)
freq
## altura
## 1.3 1.33 1.4 1.42 1.45 1.5 1.52 1.55 1.56 1.58 1.6 1.62 1.64 1.65 1.67
## 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
## 1.68 1.7 1.72 1.74 1.8 1.83 1.85
## 2 1 2 1 1 1 1
barplot(freq, ylab= "Frequência", xlab="Altura dos alunos")
Sendo assim, precisamos recorrer ao histograma.
De forma simplificada, para construir um histograma no R precisamos que dada distribuição de dados esteja na forma de vetor para aplicarmos a função hist().
Utilizando o vetor “altura”, do exemplo anterior, construiremos o histograma.
hist(altura)
Bem fácil, né?
Agora com esse gráfico é possivel responder questões como:
Dentro dessa turma, qual é a variação das alturas entre os alunos?
De forma estimada, qual é a altura média dessa turma?
O que podemos afirmar quanto a forma da distribuição?
Existe alguma altura que seja mais comum?
Entre outras questões.
Observe que automaticamente, a função gerou um gráfico que, diferentemente do gráfico de barras, dividiu o eixo x em intervalos de classes iguais, a cada 10 cm, e acumulou a ocorrencia de alunos dentro de cada intervalo. Os retângulos são justapostos, porque um intervalo de classe se inicia imediatamente após o término do outro.
A tabela de frequência para o gráfico acima, ficaria da seguinte forma:
Intervalo de Classe | Alunos | Freq Relativa |
---|---|---|
[1.3 ; 1.4] | 3 | 0.12 |
]1.4 ; 1.5] | 4 | 0.16 |
]1.5 ; 1.6] | 5 | 0.2 |
]1.6 ; 1.7] | 7 | 0.28 |
]1.7 ; 1.8] | 4 | 0.16 |
]1.8 ; 1.9] | 2 | 0.08 |
Caso necessário, podemos colocar o mesmo gráfico em frequência relativa.
hist(altura,
freq = FALSE)
Vamos agora melhorar alguns aspéctos do histograma
Utilizaremos a função main = para definir o título e as funções xlab = e ylab = para definir os rótulos dos eixos. Após cada função o nome deverá ser definido entre aspas.
hist(altura,
main = "Altura dos alunos do 1º ano do Ensino Médio",
xlab = "Altura dos alunos", ylab = "Freq. Absoluta")
Podemos colorir as barras do histograma com a função col= c(“nomedacor”). Podemos também alterar as cores da borda com a função border= c(“nomedacor”), ou ainda retirar as bordas com a função border = FALSE.
hist(altura,
main = "Altura dos alunos do 1º ano do Ensino Médio",
xlab = "Altura dos alunos", ylab = "Freq. Absoluta",
col = c("violet"),
border = FALSE)
Ainda é possível colorir cada retangulo de uma cor, basta definir cor a cor dentro da função “col= c()”
É possivel definir os limites diferentes nos eixos de x e de y através das funções xlim = c(limiteinferior, limitesuperior) e ylim = c(limiteinferior, limitesuperior).
hist(altura,
main = "Altura dos alunos do 1º ano do Ensino Médio",
xlab = "Altura dos alunos", ylab = "Freq. Absoluta",
col = c("violet"),
border = FALSE,
xlim = c(1.2,2), ylim = c(0,10))
Para rotular uma coluna, recorremos à função labels =. No caso do Histograma, às vezes pode ser interessante ter especificado a frequência em cima de cada coluna, para isso definimos labels = TRUE. Para outros rótulos, lembre-se de colocar os valores dentro do vetor entre aspas.
hist(altura,
main = "Altura dos alunos do 1º ano do Ensino Médio",
xlab = "Altura dos alunos", ylab = "Freq. Absoluta",
col = c("violet"),
border = FALSE,
xlim = c(1.2,2), ylim = c(0,10),
labels = TRUE)
Veremos agora algumas funções aplicáveis ao histograma.
Com a função nclass = determinamos o número de classes que o hitograma terá. É possivel ter o mesmo resultado com a função breaks = .
Determinar o número de classes pode ser insuficiente para demostrar alguma situação. Então, a mesma função breaks= c() permite definir o limite de cada classe, para isso basta determinar os valores limites das classes.
Observe que o pardrão de intervalo de classe no R é ]a ; b] (aberto no limite superior e fechado no limite inferior). Para inverter o intervalo use a função right = FALSE
hist(altura,
main = "Altura dos alunos do 1º ano do Ensino Médio",
xlab = "Altura dos alunos", ylab = "Freq. Absoluta",
col = c("violet","pink","lightblue","springgreen"),
border = c("royalblue"),
breaks = c(1.3, 1.45, 1.6, 1.75, 1.9),
right = FALSE)
Os dados são referentes às temperaturas diárias do mes de março, em graus Celsius, na cidade de Niteroi em 2019. (Fonte: INMET)
27.6, 25.2, 26.6, 25.9, 27.4, 28.5, 30.0, 30.4, 30.4, 28.9, 27.1, 27.8, 28.9, 29.1, 28.8, 27.2, 27.8, 28.9, 30.1, 27.1, 24.0, 23.1, 24.5, 26.2, 27.0, 27.2, 26.2, 25.6, 23.6, 24.0, 24.7
Qual foi a variação da temperatura no mês de março, na cidade de Niterói em 2019?
Faça o histograma das temperaturas do mês de março. Coloque o título e os rótulos nos eixos.
Faça o histograma da frequência relativa, coloque o título e os rótulos nos eixos, determine uma cor para o histograma e retire as bordas.
Construa uma tabela de frequências para esses dados com 5 intervalos de classes (fechado no limite superior e aberto no limite inferior)
Faça o histograma da tabela acima e rotule as colunas.
A variação da temperatura será dada pela diferença da maior temperatura registrada pela menor temperatura registrada. Sendo assim, 30.4 - 23.1 = 7,3 °C
Primeiro, crie o vetor temperatura com os valores dados:
temperatura = c(27.6, 25.2, 26.6, 25.9, 27.4, 28.5, 30.0, 30.4, 30.4, 28.9, 27.1, 27.8, 28.9, 29.1, 28.8, 27.2, 27.8, 28.9, 30.1, 27.1, 24.0, 23.1, 24.5, 26.2, 27.0, 27.2, 26.2, 25.6, 23.6, 24.0, 24.7)
temperatura
## [1] 27.6 25.2 26.6 25.9 27.4 28.5 30.0 30.4 30.4 28.9 27.1 27.8 28.9 29.1
## [15] 28.8 27.2 27.8 28.9 30.1 27.1 24.0 23.1 24.5 26.2 27.0 27.2 26.2 25.6
## [29] 23.6 24.0 24.7
Agora, podemos fazer o histograma
hist (temperatura,
main = "Temperaturas no mês de março de 2019 - Niterói",
xlab = "Temperaturas", ylab = "Freq. Absoluta")
hist (temperatura,
main = "Temperaturas no mês de março de 2019 - Niterói",
xlab = "Temperaturas", ylab = "Freq. Absoluta",
freq = FALSE,
col = "lawngreen",
border = FALSE)
Intervalos | Freq. Asoluta | Freq. Relativa |
---|---|---|
[23 ; 24.6[ | 5 | 0.16 |
[24.6 ; 26.2[ | 4 | 0.13 |
[26.2 ; 27.8[ | 10 | 0.32 |
[27,8 ; 29,4[ | 8 | 0.26 |
[29,4 ; 31] | 4 | 0.13 |
hist (temperatura,
main = "Temperaturas no mês de março de 2019 - Niterói",
xlab = "Temperaturas", ylab = "Freq. Absoluta",
col = "purple3",
breaks = c(23, 24.6, 26.2, 27.8, 29.4, 31),
right = FALSE,
labels = TRUE,
ylim = c(0,11), ##definimos um novo limite para y para subir a posição do título
xlim = c(22,32)) ##colocamos "xlim = " para que o histograma fique sobre o eixo de x
Introdução ao R utilizando a Estatística Básica - Luciane Ferreira Alcoforado e Carolina Valani Cavalcante
Visualização de dados com software R - Luciane Ferreira Alcoforado e Ariel Levy