# Dados
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.6095747087200697,
0.6125810476877268)
clock <- c(0.1, 0.5, 1, 1.5, 2, 2.5, 3)
# Layout para 2 gráficos
layout(matrix(c(1, 2), nrow = 1, ncol = 2))
# Gráfico 1: Linhas
plot(clock, MRT_1F, type = "o", col = "black", pch = 16,
ylim = c(0, max(MRT_1F)), xlab = "Clock (s)", ylab = "MRT",
main = "MRT vs Clock")
lines(clock, MRT_3F, type = "o", col = "red", pch = 16)
lines(clock, MRT_5F, type = "o", col = "blue", pch = 16)
lines(clock, MRT_10F, type = "o", col = "green", pch = 16)
lines(clock, MRT_15F, type = "o", col = "purple", pch = 16)
lines(clock, MRT_sem_F, type = "o", col = "orange", pch = 16)
legend("topright", legend = c("1F", "3F", "5F", "10F", "15F", "sem F"),
col = c("black", "red", "blue", "green", "purple", "orange"),
lty = 1, pch = 16, cex = 0.7)
# Gráfico 2: Barras com escala logarítmica
dados_barras <- rbind(MRT_1F, MRT_3F, MRT_5F, MRT_10F, MRT_15F, MRT_sem_F)
barplot(dados_barras, beside = TRUE, log = "y",
col = c("#E6E6E6", "#666666", "#E6E6E6", "#666666", "#E6E6E6", "#666666"),
names.arg = clock, xlab = "Clock (s)", ylab = "MRT (log scale)",
main = "MRT vs Clock (Barras)")
legend("topright", legend = c("1F", "3F", "5F", "10F", "15F", "sem F"),
fill = c("#E6E6E6", "#666666", "#E6E6E6", "#666666", "#E6E6E6", "#666666"),
cex = 0.7)
# Dados da tabela
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, ncol = 4)
rownames(quality_data) <- c("Good", "Very Good", "Excellent")
colnames(quality_data) <- c("$10-19", "$20-29", "$30-39", "$40-49")
# Gráfico de barras empilhadas
barplot(quality_data, col = c("#8dd3c7", "#bebada", "#fb8072"),
main = "Qualidade de Refeição por Categoria de Preço",
xlab = "Faixa de Preço", ylab = "Porcentagem (%)",
legend.text = TRUE, args.legend = list(x = "topright", title = "Qualidade"))
# Filtrar dados de maio
dados_maio <- airquality[airquality$Month == 5, ]
# Converter Fahrenheit para Celsius
temp_celsius <- (dados_maio$Temp - 32) / 1.8
# Histograma
hist(temp_celsius, col = "lightblue", border = "white",
main = "Histograma de Temperaturas em Maio",
xlab = "Temperatura (°C)", ylab = "Frequência",
probability = TRUE)
# Adicionar curva de densidade
lines(density(temp_celsius), col = "red", lwd = 2)
# DADOS BASEADOS NO LINK
sales <- data.frame(
Country = c("US", "UK", "France", "Poland", "Japan", "China"),
Total = c(340, 290, 510, 820, 120, 780)
)
# Calcular totais por país
vendas_pais <- aggregate(sales$Total, by = list(sales$Country), FUN = sum)
colnames(vendas_pais) <- c("COUNTRY", "SALES")
# Calcular porcentagens
sales$Percentage <- round(sales$Total / sum(sales$Total) * 100, 1)
# Cores para o gráfico
cores <- rainbow(nrow(sales))
# Criar gráfico de pizza
pie(sales$Total,
labels = paste0(sales$Percentage, "%"),
col = cores,
main = "Porcentagem de Vendas por País")
# Adicionar legenda
legend("topright", legend = sales$Country, fill = cores, cex = 0.8)
# Carregar dados
data(InsectSprays)
# Boxplot sem outliers
boxplot(count ~ spray, data = InsectSprays,
outline = FALSE, col = "yellow",
main = "Contagem de Insetos por Tipo de Inseticida",
xlab = "Tipo de Inseticida", ylab = "Contagem de Insetos")
# Função para processar dados de monitoramento
processar_dados <- function(arquivo) {
dados <- read.csv(arquivo)
# Converter currentTime para POSIXct
dados$currentTime <- as.POSIXct(dados$currentTime)
# Calcular tempo em horas desde o início
dados$time_hours <- as.numeric(difftime(dados$currentTime,
min(dados$currentTime),
units = "hours"))
# Converter usedMemory para MB
dados$usedMemory_MB <- sapply(dados$usedMemory, function(x) {
valor <- as.numeric(gsub("[^0-9.]", "", x))
if (grepl("TB", x)) {
return(valor * 1000000)
} else if (grepl("GB", x)) {
return(valor * 1024)
} else {
return(valor)
}
})
return(dados)
}
# Processar todos os arquivos
dados_01 <- processar_dados("monitoringCloudData_0.1.csv")
dados_05 <- processar_dados("monitoringCloudData_0.5.csv")
dados_1 <- processar_dados("monitoringCloudData_1.csv")
dados_none <- processar_dados("monitoringCloudData_NONE.csv")
# Layout para 4 gráficos (2x2)
layout(matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2, byrow = TRUE))
# Gráfico 1: 0.1
plot(dados_01$time_hours, dados_01$usedMemory_MB, type = "l", col = "blue",
main = "Monitoramento 0.1", xlab = "Tempo (horas)",
ylab = "Memória Usada (MB)")
# Gráfico 2: 0.5
plot(dados_05$time_hours, dados_05$usedMemory_MB, type = "l", col = "red",
main = "Monitoramento 0.5", xlab = "Tempo (horas)",
ylab = "Memória Usada (MB)")
# Gráfico 3: 1
plot(dados_1$time_hours, dados_1$usedMemory_MB, type = "l", col = "green",
main = "Monitoramento 1", xlab = "Tempo (horas)",
ylab = "Memória Usada (MB)")
# Gráfico 4: NONE
plot(dados_none$time_hours, dados_none$usedMemory_MB, type = "l", col = "purple",
main = "Monitoramento NONE", xlab = "Tempo (horas)",
ylab = "Memória Usada (MB)")
library(plotly)
# Carregar dados Netflix
netflix <- read.csv("netflix_titles.csv")
# Filtrar apenas países únicos (sem vírgulas)
netflix_single <- netflix[!grepl(",", netflix$country) & !is.na(netflix$country), ]
# Contar conteúdos por país
contagem_paises <- as.data.frame(table(netflix_single$country))
colnames(contagem_paises) <- c("Country", "Count")
contagem_paises <- contagem_paises[order(-contagem_paises$Count), ]
# Top 10 países
top10 <- head(contagem_paises, 10)
# Gráfico de pizza
fig <- plot_ly(top10, labels = ~Country, values = ~Count, type = 'pie')
fig <- fig %>% layout(title = "Top 10 Países com Mais Conteúdo na Netflix")
fig
library(plotly)
# Usar dados da questão anterior
top10_table <- data.frame(
País = top10$Country,
`Total de conteúdos` = top10$Count
)
# Criar tabela com Plotly
fig <- plot_ly(
type = 'table',
header = list(
values = c("País", "Total de conteúdos"),
align = c('center', 'center'),
line = list(width = 1, color = 'black'),
fill = list(color = 'grey'),
font = list(family = "Arial", size = 14, color = "white")
),
cells = list(
values = rbind(top10_table$País, top10_table$Total.de.conteúdos),
align = c('center', 'center'),
line = list(color = "black", width = 1),
font = list(family = "Arial", size = 12, color = c("black"))
))
fig
library(plotly)
# Carregar dados Netflix
netflix <- read.csv("netflix_titles.csv")
# Criar coluna de década
netflix$decade <- floor(netflix$release_year / 10) * 10
# Contar por década e tipo
contagem_decada <- aggregate(show_id ~ decade + type, data = netflix, FUN = length)
colnames(contagem_decada) <- c("Decade", "Type", "Count")
# Separar filmes e séries
series <- contagem_decada[contagem_decada$Type == "TV Show", ]
movies <- contagem_decada[contagem_decada$Type == "Movie", ]
# Gráfico de linha
fig <- plot_ly()
fig <- fig %>% add_trace(data = series, x = ~Decade, y = ~Count,
type = 'scatter', mode = 'lines+markers',
name = 'Séries', line = list(color = 'blue'))
fig <- fig %>% add_trace(data = movies, x = ~Decade, y = ~Count,
type = 'scatter', mode = 'lines+markers',
name = 'Filmes', line = list(color = 'yellow'))
fig <- fig %>% layout(title = "Quantidade de Conteúdo por Década",
xaxis = list(title = "Década"),
yaxis = list(title = "Quantidade de Conteúdo"))
fig
library(plotly)
# Filtrar filmes entre 2000 e 2010
filmes_filtrados <- netflix[netflix$type == "Movie" &
netflix$release_year >= 2000 &
netflix$release_year <= 2010, ]
# Extrair primeiro gênero
filmes_filtrados$primeiro_genero <- sapply(strsplit(as.character(filmes_filtrados$listed_in), ","),
function(x) trimws(x[1]))
# Filtrar gêneros específicos
generos_interesse <- c("Dramas", "Action & Adventure", "Comedies")
filmes_generos <- filmes_filtrados[filmes_filtrados$primeiro_genero %in% generos_interesse, ]
# Contar por ano e gênero
contagem <- aggregate(show_id ~ release_year + primeiro_genero,
data = filmes_generos, FUN = length)
colnames(contagem) <- c("Ano", "Genero", "Quantidade")
# Criar gráfico de barras lado a lado
plot_ly(contagem, x = ~Ano, y = ~Quantidade, color = ~Genero,
type = 'bar') %>%
layout(title = "Quantidade de Filmes por Gênero (2000-2010)",
xaxis = list(title = "Ano"),
yaxis = list(title = "Quantidade de Filmes"),
barmode = 'group')