Questão 1

cat("Questão 1: Gráficos de linha com layout() para MRT_1F e MRT_3F\n")
## Questão 1: Gráficos de linha com layout() para MRT_1F e MRT_3F
clock <- c(0.1, 0.5, 1, 1.5, 2, 2.5, 3)
MRT_1F <- c(517.15, 85.13, 30.33, 12.69, 3.30, 1.18, 1.19)
MRT_3F <- c(156.69, 11.54, 0.45, 0.45, 0.45, 0.45, 0.45)
layout(matrix(1:2, ncol=2))
plot(clock, MRT_1F, type="b", col="blue", main="MRT_1F", xlab="Clock", ylab="Tempo")
plot(clock, MRT_3F, type="b", col="red", main="MRT_3F", xlab="Clock", ylab="Tempo")

Questão 2

cat("Questão 2: Gráfico de barras com escala logarítmica\n")
## Questão 2: Gráfico de barras com escala logarítmica
bar_data <- rbind(MRT_1F, MRT_3F)
barplot(bar_data, beside=TRUE, log="y", col=c("#E6E6E6", "#666666"),
        names.arg=clock, main="MRTs com Escala Log", xlab="Clock", ylab="Log Tempo")
legend("topright", legend=c("MRT_1F", "MRT_3F"), fill=c("#E6E6E6", "#666666"))

Questão 3

cat("Questão 3: Gráfico de barras empilhadas com classificação de refeições\n")
## Questão 3: Gráfico de barras empilhadas com classificação de refeições
qualidade <- matrix(c(30, 40, 20, 10, 25, 35), nrow=2, byrow=TRUE)
colnames(qualidade) <- c("Baixo", "Médio", "Alto")
rownames(qualidade) <- c("Categoria A", "Categoria B")
barplot(qualidade, main="Qualidade da Refeição por Preço",
        col=c("skyblue", "orange"), legend=rownames(qualidade),
        xlab="Qualidade", ylab="Frequência")

Questão 4

cat("Questão 4: Histograma das temperaturas em °C com curva de densidade\n")
## Questão 4: Histograma das temperaturas em °C com curva de densidade
data(airquality)
airquality_maio <- subset(airquality, Month == 5)
airquality_maio$TempC <- (airquality_maio$Temp - 32) / 1.8
hist(airquality_maio$TempC, probability=TRUE, col="lightblue",
     main="Temperaturas em Maio (°C)", xlab="Temperatura (°C)", ylab="Densidade")
lines(density(airquality_maio$TempC, na.rm=TRUE), col="darkblue", lwd=2)

Questão 5

cat("Questão 5: Gráfico de pizza com verificação de dados\n")
## Questão 5: Gráfico de pizza com verificação de dados
sales <- tryCatch({
  read.table("https://training-course-material.com/images/8/8f/Sales.txt", header = TRUE)
}, error = function(e) {
  cat("Erro ao carregar os dados de vendas. Verifique o link ou a conexão.\n")
  return(data.frame(Country = character(), Sales = numeric()))
})

if (nrow(sales) > 0) {
  sales <- sales[!is.na(sales$Sales) & sales$Sales > 0, ]
  if (nrow(sales) > 0) {
    percent <- round(100 * sales$Sales / sum(sales$Sales), 1)
    labels <- paste(sales$Country, "-", percent, "%")
    pie(sales$Sales, labels=labels, col=rainbow(length(labels)), main="Vendas por País")
    legend("topright", legend=sales$Country, fill=rainbow(length(labels)))
  } else {
    cat("Aviso: Nenhum valor positivo encontrado em 'sales$Sales'. Gráfico não gerado.\n")
  }
} else {
  cat("Aviso: Dados de vendas não disponíveis. Gráfico não gerado.\n")
}
## Aviso: Nenhum valor positivo encontrado em 'sales$Sales'. Gráfico não gerado.

Questão 6

cat("Questão 6: Boxplot sem outliers dos inseticidas\n")
## Questão 6: Boxplot sem outliers dos inseticidas
data(InsectSprays)
boxplot(count ~ spray, data=InsectSprays, outline=FALSE, col="yellow",
        main="Inseticidas - Contagem de Insetos", xlab="Inseticida", ylab="Contagem")

Questão 7

cat("Questão 7: Pizza Plotly dos 10 países com mais conteúdos da Netflix\n")
## Questão 7: Pizza Plotly dos 10 países com mais conteúdos da Netflix
netflix <- read_csv("netflix_titles.csv")
## Rows: 7787 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (11): show_id, type, title, director, cast, country, date_added, rating,...
## dbl  (1): release_year
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_country <- netflix %>%
  filter(!is.na(country) & !str_detect(country, ",")) %>%
  group_by(country) %>%
  summarise(total = n()) %>%
  arrange(desc(total)) %>%
  slice_head(n = 10)
plot_ly(df_country, labels = ~country, values = ~total, type = 'pie') %>%
  plotly::layout(title = "Top 10 Países com mais Conteúdo na Netflix")

Questão 8

cat("Questão 8: Tabela Plotly com cabeçalho cinza e texto centralizado\n")
## Questão 8: Tabela Plotly com cabeçalho cinza e texto centralizado
plot_ly(
  type = 'table',
  header = list(
    values = c("País", "Total de Conteúdos"),
    align = 'center',
    line = list(width = 1, color = 'black'),
    fill = list(color = "gray"),
    font = list(color = "white", size = 14)
  ),
  cells = list(
    values = list(df_country$country, df_country$total),
    align = 'center',
    fill = list(color = c("white", "lightgray")),
    font = list(size = 12)
  )
)

Questão 9

cat("Questão 9: Gráfico de linha por década - séries e filmes\n")
## Questão 9: Gráfico de linha por década - séries e filmes
netflix_decada <- netflix %>%
  filter(!is.na(release_year)) %>%
  mutate(decada = paste0(substr(release_year, 1, 3), "0")) %>%
  group_by(decada, type) %>%
  summarise(total = n(), .groups = "drop")
plot_ly(netflix_decada, x = ~decada, y = ~total, color = ~type,
        type = 'scatter', mode = 'lines+markers') %>%
  plotly::layout(title = "Conteúdos por Década",
                 xaxis = list(title = "Década"),
                 yaxis = list(title = "Quantidade"))
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels

Questão 10

cat("Questão 10: Barras por gênero (2000–2010)\n")
## Questão 10: Barras por gênero (2000–2010)
netflix_genero <- netflix %>%
  filter(type == "Movie", release_year >= 2000, release_year <= 2010) %>%
  mutate(genero = str_trim(sapply(strsplit(as.character(listed_in), ","), `[`, 1))) %>%
  filter(genero %in% c("Dramas", "Action & Adventure", "Comedies")) %>%
  group_by(release_year, genero) %>%
  summarise(total = n(), .groups = "drop")
plot_ly(netflix_genero, x = ~release_year, y = ~total, color = ~genero, type = 'bar') %>%
  plotly::layout(barmode = 'group',
                 title = "Filmes por Gênero (2000–2010)",
                 xaxis = list(title = "Ano"),
                 yaxis = list(title = "Quantidade"))