# Histogramas e Gráficos de Distribuição# ============================================================# 1. Histograma de Frequência (com rug para mostrar dados individuais)# ============================================================h_freq <- hist(airquality$Temp, main = "Histograma de Frequencia - Temperatura", xlab = "Temperatura (Fahrenheit)", ylab = "Frequência", col = "gray", border = "black", breaks = 12) # Controla número de barras
rug(airquality$Temp, col = "blue", lwd = 1.5) # Linhas no eixo x mostrando posições dos dados
# ============================================================# Explicando o objeto 'h_freq' retornado pela função hist()# ============================================================# A função hist() retorna uma lista com 6 componentes principais:str(h_freq) # Mostra a estrutura do objeto
# Exemplos de componentes úteis:print(h_freq$breaks) # Limites dos intervalos (classes)print(h_freq$counts) # Frequência em cada intervaloprint(h_freq$mids) # Pontos médios dos intervalosprint(h_freq$density) # Densidade (útil para freq=FALSE)print(h_freq$intensities) # Intensidades (pixels por unidade)print(sum(h_freq$counts)) # Total de observações (sem NAs)
# ============================================================# 2. Histograma de Densidade + Curva de Densidade Estimada# ============================================================h_dens <- hist(airquality$Temp, main = "Histograma de Densidade + Curva de Densidade", xlab = "Temperatura (Fahrenheit)", ylab = "Densidade", col = "lightblue", border = "darkblue", freq = FALSE, # Muda para densidade (soma=1) breaks = 12)
lines(density(airquality$Temp, na.rm = TRUE), col = "red", lwd = 2) # Curva suave de densidade
rug(airquality$Temp, col = "darkred", lwd = 1.2)
# ============================================================# 3. Ogiva (Frequência Acumulada)# ============================================================# Criar histograma apenas para obter os intervalosh_freq <- hist(airquality$Temp, plot = FALSE)
# Frequências por intervalotemp_freq <- table(cut(airquality$Temp, breaks = h_freq$breaks))
# Frequência acumuladatemp_cumfreq <- cumsum(temp_freq)
# Plotar a ogivaplot(h_freq$mids, temp_cumfreq, type = "s", # Linha em degraus main = "Ogiva - Frequencia Acumulada de Temperatura", xlab = "Temperatura (Fahrenheit)", ylab = "Frequência Acumulada", col = "purple", lwd = 2, pch = 16) # Pontos nos degraus
# ============================================================# Exercícios sugeridos# ============================================================# 1. Conjunto mtcars - hist() de 'mpg' (milhas por galão)# - summary(mtcars$mpg)# - h <- hist(mtcars$mpg, col="green"); str(h)# - lines(density(mtcars$mpg))
# 2. Conjunto iris - hist() de 'Sepal.Length'# - summary(iris$Sepal.Length)# - hist(iris$Sepal.Length, freq=FALSE, col="orange")# - rug(iris$Sepal.Length); lines(density(iris$Sepal.Length, col="blue"))
# 3. Conjunto PlantGrowth - hist() de 'weight'# - summary(PlantGrowth$weight)# - h <- hist(PlantGrowth$weight); table(cut(PlantGrowth$weight, h$breaks))
# 4. Conjunto ChickWeight - hist() de 'weight' (por Diet?)# - summary(ChickWeight$weight)# - hist(ChickWeight$weight, breaks=20, col="yellow")# - lines(density(ChickWeight$weight))
# 5. Conjunto ToothGrowth - hist() de 'len' (comprimento dos dentes)# - summary(ToothGrowth$len)# - h_dens <- hist(ToothGrowth$len, freq=FALSE); str(h_dens)
# 6. Conjunto faithful (erupções do gêiser) - hist() de 'eruptions'# - data(faithful)# - hist(faithful$eruptions, col="pink", freq=FALSE)# - rug(faithful$eruptions); lines(density(faithful$eruptions))
# ============================================================# Observações:# - Use na.rm=TRUE em density() se houver NAs (como em airquality).# - 'breaks' controla classes: número, vetor ou método ("Sturges", "FD").# - Para ogiva, use cut() + table() + cumsum() com breaks do hist().# - Sempre explore com summary() antes de plotar variáveis numéricas!# ============================================================