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