# Inserindo os dados manualmente direto no código
sales <- data.frame(
COUNTRY = c("US", "UK", "France", "Poland", "Japan", "China"),
SALES = c(340, 290, 510, 820, 120, 780)
)
# Calculando a porcentagem
pct <- round(sales$SALES / sum(sales$SALES) * 100)
labels_pct <- paste0(pct, "%")
# Definindo cores
cores <- rainbow(nrow(sales))
# Gráfico de pizza
pie(sales$SALES, labels = labels_pct, col = cores, main = "Vendas por País")
legend("topright", legend = sales$COUNTRY, fill = cores, cex = 0.8)

# Função para ler, limpar e preparar os dados de CloudData
process_cloud_data <- function(file_name) {
# Verificação caso o arquivo não exista localmente, criaremos um dummy seguro
if(file.exists(file_name)) {
df <- read.csv(file_name)
# Diferença de tempo em horas
df$currentTime <- as.numeric(difftime(as.POSIXct(df$currentTime), min(as.POSIXct(df$currentTime)), units="hours"))
# Extração e conversão de memória usando regex
num_part <- as.numeric(str_extract(df$usedMemory, "[0-9.]+"))
unit_part <- toupper(str_extract(df$usedMemory, "[A-Za-z]+"))
# Lógica de conversão
df$usedMemory <- ifelse(unit_part == "GB", num_part * 1024,
ifelse(unit_part == "TB", num_part * 1000000, num_part))
return(df)
} else {
# Caso você ainda não tenha os arquivos na pasta, isso previne o código de quebrar gerando um plot vazio
return(data.frame(currentTime=c(0, 70), usedMemory=c(0, 0)))
}
}
# Lendo os arquivos (certifique-se de que estão na mesma pasta do projeto)
df_none <- process_cloud_data("monitoring_CloudData_NONE.csv")
df_01 <- process_cloud_data("monitoring_CloudData_0.1.csv")
df_05 <- process_cloud_data("monitoring_CloudData_0.5.csv")
df_1 <- process_cloud_data("monitoring_CloudData_1.csv")
# Organizando painel 2x2
layout(matrix(c(1,2,3,4), nrow = 2, byrow = TRUE))
par(mar=c(4,4,2,1))
plot(df_none$currentTime, df_none$usedMemory, type="l", main="Memory Analysis (None Workload)", xlab="Time (hour)", ylab="Used Memory (MB)")
plot(df_01$currentTime, df_01$usedMemory, type="l", main="Memory Analysis (Workload of 0.1)", xlab="Time (hour)", ylab="Used Memory (MB)")
plot(df_05$currentTime, df_05$usedMemory, type="l", main="Memory Analysis (Workload of 0.5)", xlab="Time (hour)", ylab="Used Memory (MB)")
plot(df_1$currentTime, df_1$usedMemory, type="l", main="Memory Analysis (Workload of 1.0)", xlab="Time (hour)", ylab="Used Memory (MB)")

par(mfrow=c(1,1))
# Verificação de segurança caso o dataset da Netflix não esteja na pasta
if(file.exists("netflix_titles.csv")) {
netflix <- read.csv("netflix_titles.csv", stringsAsFactors = FALSE)
# Filtrando conteúdos com apenas um país (sem vírgula e que não estejam vazios)
netflix_single <- netflix %>%
filter(!grepl(",", country) & country != "")
# Pegando os 10 maiores
top10_countries <- netflix_single %>%
group_by(country) %>%
summarise(total = n()) %>%
arrange(desc(total)) %>%
head(10)
plot_ly(top10_countries, labels = ~country, values = ~total, type = 'pie') %>%
layout(title = 'Top 10 Países com Mais Conteúdo Exclusivo')
} else {
print("Arquivo netflix_titles.csv não encontrado na pasta de trabalho.")
}
if(exists("top10_countries")) {
plot_ly(
type = 'table',
header = list(
values = c("<b>País</b>", "<b>Total de conteúdos</b>"),
align = c('center'),
line = list(color = "black", width = 1),
fill = list(color = 'gray'),
font = list(color = 'white', size = 14)
),
cells = list(
values = rbind(top10_countries$country, top10_countries$total),
align = c('center'),
line = list(color = "black", width = 1),
font = list(color = c('black'), size = 12)
)
)
}
if(file.exists("netflix_titles.csv")) {
# Agrupando por década e tipo
decades_data <- netflix %>%
mutate(Decada = (release_year %/% 10) * 10) %>%
group_by(Decada, type) %>%
summarise(count = n(), .groups = 'drop')
# Separando TV e Movies
tv_series <- decades_data %>% filter(type == "TV Show")
movies <- decades_data %>% filter(type == "Movie")
plot_ly() %>%
add_trace(data = tv_series, x = ~Decada, y = ~count, type = 'scatter', mode = 'lines+markers',
name = 'TV Series', line = list(color = 'blue')) %>%
add_trace(data = movies, x = ~Decada, y = ~count, type = 'scatter', mode = 'lines+markers',
name = 'Movies', line = list(color = 'orange')) %>%
layout(title = "Quantidade de Conteúdo por Década",
xaxis = list(title = "Década", tick0 = 1940, dtick = 20),
yaxis = list(title = "Qnt. Conteúdo"))
}
if(file.exists("netflix_titles.csv")) {
# Extraindo apenas o primeiro gênero de cada filme e filtrando de 2000 a 2010
movies_genre <- netflix %>%
filter(type == "Movie" & release_year >= 2000 & release_year <= 2010) %>%
mutate(primeiro_genero = str_trim(gsub(",.*", "", listed_in))) %>%
filter(primeiro_genero %in% c("Dramas", "Action & Adventure", "Comedies")) %>%
group_by(release_year, primeiro_genero) %>%
summarise(qnt = n(), .groups = 'drop')
# Gráfico de barras lado a lado
plot_ly(movies_genre, x = ~release_year, y = ~qnt, color = ~primeiro_genero, type = 'bar',
colors = c("Action & Adventure" = "orange", "Comedies" = "green", "Dramas" = "blue")) %>%
layout(barmode = 'group',
title = "Lançamentos de Filmes por Gênero (2000 - 2010)",
xaxis = list(title = "Ano de Lançamento", tickmode = 'linear', dtick = 2),
yaxis = list(title = "Qnt. de Lançamentos"))
}