Questões

VADeaths - Questão 1

VADeaths
##       Rural Male Rural Female Urban Male Urban Female
## 50-54       11.7          8.7       15.4          8.4
## 55-59       18.1         11.7       24.3         13.6
## 60-64       26.9         20.3       37.0         19.3
## 65-69       41.0         30.9       54.6         35.1
## 70-74       66.0         54.3       71.1         50.0
cores <- c(
  "steelblue",
  "tomato",
  "seagreen3",
  "gold",
  "orchid"
)

barplot(
  VADeaths,
  beside = TRUE,
  col = cores,
  main = "Taxas de Mortalidade por Faixa Etária e Grupo Populacional",
  xlab = "Grupo populacional",
  ylab = "Taxa de mortalidade",
  legend.text = rownames(VADeaths),
  args.legend = list(
    title = "Faixa etária",
    x = "topright",
    bty = "n"
  )
)

ClassificaçãoDoença - Questão 2

# Dados dos 20 pacientes
estagios <- c(
  "moderado", "leve", "leve", "severo", "leve",
  "moderado", "moderado", "moderado", "leve", "leve",
  "severo", "leve", "moderado", "moderado", "leve",
  "severo", "moderado", "moderado", "moderado", "leve"
)

# Contagem dos estágios
frequencias <- table(
  factor(estagios, levels = c("leve", "moderado", "severo"))
)

# Porcentagens
porcentagens <- 100 * frequencias / sum(frequencias)

# Cores das categorias
cores <- c("#66C2A5", "#FC8D62", "#8DA0CB")

# Rótulos com porcentagens
rotulos <- paste0(
  names(frequencias), "\n",
  round(porcentagens, 1), "%"
)

# Separar área do gráfico e da legenda
layout(matrix(c(1, 2), nrow = 1), widths = c(3, 1))

# Gráfico de pizza tradicional
pie(
  frequencias,
  labels = rotulos,
  col = cores,
  main = "Classificação da Doença",
  border = "white",
  clockwise = TRUE
)

# Legenda
plot.new()
legend(
  "center",
  legend = paste0(
    names(frequencias), " (",
    round(porcentagens, 1), "%)"
  ),
  fill = cores,
  title = "Estágios",
  bty = "n"
)

layout(1)

USArrests - Questão 3

library(plotly)

# 1. Carregar o dataset
dados <- USArrests

# 2. Criar a coluna City com os nomes dos estados
dados$City <- rownames(dados)

# 3. Ordenar de forma decrescente por Murder
dados <- dados[order(dados$Murder, decreasing = TRUE), ]

# 4. Selecionar os cinco primeiros estados
top5 <- head(dados, 5)

# 5. Construir o gráfico de barras agrupadas com Plotly
grafico <- plot_ly(
  data = top5,
  x = ~City
) %>%
  add_bars(
    y = ~Murder,
    name = "Murder",
    marker = list(color = "#E74C3C")
  ) %>%
  add_bars(
    y = ~Rape,
    name = "Rape",
    marker = list(color = "#3498DB")
  ) %>%
  add_bars(
    y = ~Assault,
    name = "Assault",
    marker = list(color = "#2ECC71")
  ) %>%
  layout(
    title = list(
      text = "Top 5 Estados Mais Violentos - USArrests"
    ),
    xaxis = list(title = "Estados"),
    yaxis = list(title = "Taxa de prisões por 100 mil habitantes"),
    barmode = "group",
    legend = list(
      title = list(text = "Tipos de crime")
    )
  )

grafico

Orange - Questão 4

library(plotly)

# 1. Carregar o dataset
dados_orange <- datasets::Orange 

# 2. Identificar as cinco árvores
dados_orange$Arvore <- factor(
  paste("Árvore", dados_orange$Tree),
  levels = paste("Árvore", 1:5)
)

# 3. Ordenar por árvore e idade
dados_orange <- dados_orange[
  order(dados_orange$Arvore, dados_orange$age),
]

# 4. Criar o texto personalizado do tooltip
dados_orange$tooltip <- paste0(
  dados_orange$Arvore,
  " — idade: ", dados_orange$age,
  " dias — circ.: ", dados_orange$circumference,
  " mm"
)

# 5. Criar o gráfico interativo
grafico_orange <- plot_ly(
  data = dados_orange,
  x = ~age,
  y = ~circumference,
  color = ~Arvore,
  colors = c(
    "#E74C3C",
    "#3498DB",
    "#2ECC71",
    "#9B59B6",
    "#F39C12"
  ),
  type = "scatter",
  mode = "lines+markers",
  text = ~tooltip,
  hoverinfo = "text"
) %>%
  layout(
    title = list(
      text = "Crescimento das Laranjeiras"
    ),
    xaxis = list(
      title = "Idade (dias)"
    ),
    yaxis = list(
      title = "Circunferência (mm)"
    ),
    legend = list(
      title = list(text = "Laranjeiras")
    )
  )

grafico_orange