Atividade da semana 12

Questão 1

# Dados fornecidos
MRT_1F <- c(517.1468515630205, 85.13094142168089, 30.333207896694553, 12.694776264558937, 3.3041601673945418, 1.1823111717498882, 1.1892293502386786)
MRT_3F <- c(156.68929936163462, 11.540837783562276, 0.4512835621696538, 0.4509797929766453, 0.4502068233039181, 0.4496185276300172, 0.4543157082191288)
MRT_5F <- c(83.90319666471157, 0.3068151086494968, 0.30522314133037304, 0.3072588968084928, 0.30655265997285697, 0.3055812715727718, 0.3053297166713006)
MRT_10F <- c(29.55430642951759, 0.19832832665772515, 0.1971923924717474, 0.19796648905716516, 0.19615594370806338, 0.2034569237883263, 0.19617420889447737)
MRT_15F <- c(11.317736530583566, 0.167364215666193, 0.16172168266811013, 0.16701085329580515, 0.1598052657153692, 0.1645934043532696, 0.16216563797118075)
MRT_sem_F <- c(11.93430909937736, 0.6095414637034009, 0.6060645101029295, 0.612167181646899, 0.6146761002685637, 0.6096747087200697, 0.6125810476877268)
clock <- c(0.1, 0.5, 1, 1.5, 2, 2.5, 3)

# Configuração do layout para os gráficos
layout(matrix(c(1, 2), nrow = 1, byrow = TRUE))

# Gráfico de linhas
plot(clock, MRT_1F, type="o", col="blue", xlab="Clock (GHz)", ylab="MRT", main="Gráfico de Linhas",
     ylim=c(0, max(MRT_1F)))
lines(clock, MRT_3F, type="o", col="red")
lines(clock, MRT_5F, type="o", col="green")
lines(clock, MRT_10F, type="o", col="purple")
lines(clock, MRT_15F, type="o", col="orange")
lines(clock, MRT_sem_F, type="o", col="brown")
legend("topright", legend=c("MRT_1F", "MRT_3F", "MRT_5F", "MRT_10F", "MRT_15F", "MRT_sem_F"), 
       col=c("blue", "red", "green", "purple", "orange", "brown"), lty=1, cex=0.8)

# Gráfico de barras com escala logarítmica
barplot(rbind(MRT_1F, MRT_3F, MRT_5F, MRT_10F, MRT_15F, MRT_sem_F), beside=TRUE, log="y",
        col=c("#E6E6E6", "#666666"), xlab="Clock (GHz)", ylab="MRT (log scale)", 
        main="Gráfico de Barras com Escala Logarítmica")
legend("topright", legend=c("MRT_1F", "MRT_3F", "MRT_5F", "MRT_10F", "MRT_15F", "MRT_sem_F"), 
       fill=c("#E6E6E6", "#666666"), cex=0.8)

Questão 2

# Dados da tabela de qualidade de refeição
quality_data <- matrix(c(53.8, 43.6, 2.6,
                         33.9, 54.2, 11.9,
                         2.6, 60.5, 36.8,
                         0.0, 21.4, 78.6),
                       nrow=3, byrow=TRUE)

colnames(quality_data) <- c("$10-19", "$20-29", "$30-39", "$40-49")
rownames(quality_data) <- c("Good", "Very Good", "Excellent")

# Gráfico de barras empilhadas
barplot(quality_data, beside=FALSE, col=c("lightblue", "lightgreen", "lightcoral"),
        main="Qualidade de Refeição por Faixa de Preço",
        xlab="Faixa de Preço", ylab="Percentual",
        legend.text=TRUE, args.legend=list(x="topright", inset=0.05, cex=0.8))

Questão 3

data("airquality")

# Filtragem os dados para o mês de maio
may_data <- airquality[airquality$Month == 5, ]

# Conversão das temperaturas de Fahrenheit para Celsius
may_data$Temp_C <- (may_data$Temp - 32) / 1.8

# Geração do histograma das temperaturas em Celsius
hist(may_data$Temp_C,
     main = "Histograma das Temperaturas em Maio (°C)",
     xlab = "Temperatura (°C)",
     ylab = "Frequência",
     col = "lightblue",
     border = "darkblue",
     prob = TRUE) # Define probabilidade para adicionar a curva de densidade

# Adição da curva de densidade
lines(density(may_data$Temp_C), col = "red", lwd = 2)

Questão 4

# O link para o dataset está inacessível

Questão 5

# Carregar o dataset InsectSprays
data("InsectSprays")

# Criar o boxplot sem outliers
boxplot(count ~ spray, 
        data = InsectSprays, 
        main = "Contagens de Insetos por Tipo de Inseticida", 
        xlab = "Tipo de Inseticida", 
        ylab = "Contagem de Insetos", 
        col = "yellow",        # Cor das caixas
        outline = FALSE,       # Remover outliers
        border = "black")      # Cor das bordas das caixas

Questão 7

library(plotly)
library(dplyr)

# Ler o dataset
netflix_data <- read.csv("./netflix_titles.csv")

# Filtrar conteúdos com apenas um país de origem
single_country_data <- netflix_data %>% 
  filter(!is.na(country) & !grepl(",", country))

# Contar a quantidade de conteúdos por país
country_counts <- single_country_data %>%
  count(country) %>%
  arrange(desc(n))

# Selecionar os 10 países com mais conteúdos
top_10_countries <- head(country_counts, 10)

# Criar o gráfico de pizza com Plotly
plot_ly(top_10_countries, labels = ~country, values = ~n, type = 'pie',
        textinfo = 'label+percent',
        marker = list(colors = RColorBrewer::brewer.pal(10, "Set3"))) %>%
  layout(title = "Top 10 Países com Mais Conteúdos na Netflix em 2019")

Questão 8

library(plotly)
library(dplyr)

# Ler o dataset
url <- "./netflix_titles.csv"
netflix_data <- read.csv(url)

# Filtrar conteúdos com apenas um país de origem
single_country_data <- netflix_data %>%
  filter(!grepl(",", country))  # Seleciona apenas os conteúdos com um único país na coluna 'country'

# Contar o número de conteúdos por país
country_counts <- single_country_data %>%
  group_by(country) %>%
  summarise(count = n()) %>%
  arrange(desc(count))

# Selecionar os 10 países com mais conteúdo
top_10_countries <- head(country_counts, 10)

# Criar a tabela com Plotly
fig <- plot_ly(
  type = 'table',
  header = list(
    values = c('País', 'Total de Conteúdos'),
    fill = list(color = '#808080'),  # Fundo cinza
    font = list(color = 'white', size = 14),  # Texto branco
    align = c('center', 'center')  # Alinhamento centralizado
  ),
  cells = list(
    values = list(top_10_countries$country, top_10_countries$count),
    fill = list(color = c('white', 'lightgray')),
    align = c('center', 'center')  # Alinhamento centralizado
  )
)

# Exibir a tabela
fig

Questão 9

library(plotly)
library(dplyr)

# Ler o dataset
url <- "./netflix_titles.csv"
netflix_data <- read.csv(url)

# Converter o ano de lançamento em década
netflix_data <- netflix_data %>%
  mutate(decade = floor(release_year / 10) * 10)

# Contar o número de conteúdos por década e tipo de conteúdo
content_by_decade <- netflix_data %>%
  group_by(decade, type) %>%
  summarise(count = n()) %>%
  ungroup()
## `summarise()` has grouped output by 'decade'. You can override using the
## `.groups` argument.
fig <- plot_ly(content_by_decade, x = ~decade, y = ~count, color = ~type, 
               type = 'scatter', mode = 'lines+markers',
               colors = c('blue', 'yellow'),
               line = list(width = 2),
               marker = list(size = 8)) %>%
  layout(title = 'Quantidade de Conteúdo por Década na Netflix',
         xaxis = list(title = 'Década'),
         yaxis = list(title = 'Quantidade de Conteúdo'),
         legend = list(title = list(text = 'Tipo de Conteúdo')))

fig

Questão 10

library(plotly)
library(dplyr)

url <- "./netflix_titles.csv"
netflix_data <- read.csv(url)

# Filtrar filmes lançados entre 2000 e 2010
netflix_data_filtered <- netflix_data %>%
  filter(type == "Movie" & release_year >= 2000 & release_year <= 2010)

# Extrair o primeiro gênero listado para filmes com múltiplos gêneros
netflix_data_filtered <- netflix_data_filtered %>%
  mutate(first_genre = sapply(strsplit(listed_in, ","), `[`, 1)) %>%
  filter(first_genre %in% c("Dramas", "Action & Adventure", "Comedies"))

# Contar o número de filmes por gênero e ano
film_counts <- netflix_data_filtered %>%
  group_by(release_year, first_genre) %>%
  summarise(count = n()) %>%
  ungroup()
## `summarise()` has grouped output by 'release_year'. You can override using the
## `.groups` argument.
fig <- plot_ly(film_counts, x = ~release_year, y = ~count, color = ~first_genre, 
               type = 'bar', 
               barmode = 'group',
               colors = c('blue', 'red', 'green'),
               text = ~paste('Count: ', count),
               textposition = 'auto') %>%
  layout(title = 'Quantidade de Filmes por Gênero (2000-2010)',
         xaxis = list(title = 'Ano'),
         yaxis = list(title = 'Quantidade de Filmes'),
         legend = list(title = list(text = 'Gênero')))

fig