Exercício 12 [Visualização de Dados]

Questão 1

library(lattice)

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)

layout(matrix(c(1,2), 1, 2))

plot(clock, MRT_1F, type="o", pch=4, col="black", ylim=c(0, max(MRT_1F)),
     xlab="Time between Things requests (seconds)", ylab="Response Time (sec.)")

lines(clock, MRT_3F, type="o", pch=11, col="yellow")
lines(clock, MRT_5F, type="o", pch=1, col="red")
lines(clock, MRT_10F, type="o", pch=2, col="blue")
lines(clock, MRT_15F, type="o", pch=5, col="purple")
lines(clock, MRT_sem_F, type="o", pch=4, col="green")

legend("topright", legend=c("1 Fog", "3 Fogs", "5 Fogs", "10 Fogs", "15 Fogs", "w/o Fog"),
       pch=c(4,11,1,2,5,4),
       col=c("black", "yellow", "red", "blue", "purple", "green"), lty=1)

layout(matrix(1:6, nrow = 3, byrow = TRUE))

matriz <- rbind(MRT_sem_F, MRT_1F)

barplot(matriz, beside=TRUE, col=c("#E6E6E6", "#666666"),
  names.arg=clock, log="y", , xlab="Time between Things request", ylab="Response Time (s)"
)
legend("topright", legend=c("w/o Fog", "1 Fog"), fill=c("#E6E6E6", "#666666"))

matriz <- rbind(MRT_sem_F, MRT_3F)

barplot(matriz, beside=TRUE, col=c("#E6E6E6", "#666666"),
  names.arg=clock, log="y", , xlab="Time between Things request", ylab="Response Time (s)"
)
legend("topright", legend=c("w/o Fog", "3 Fogs"), fill=c("#E6E6E6", "#666666"))

matriz <- rbind(MRT_sem_F, MRT_5F)

barplot(matriz, beside=TRUE, col=c("#E6E6E6", "#666666"),
  names.arg=clock, log="y", , xlab="Time between Things request", ylab="Response Time (s)"
)
legend("topright", legend=c("w/o Fog", "5 Fogs"), fill=c("#E6E6E6", "#666666"))

matriz <- rbind(MRT_sem_F, MRT_10F)

barplot(matriz, beside=TRUE, col=c("#E6E6E6", "#666666"),
  names.arg=clock, log="y", , xlab="Time between Things request", ylab="Response Time (s)"
)
legend("topright", legend=c("w/o Fog", "10 Fogs"), fill=c("#E6E6E6", "#666666"))

matriz <- rbind(MRT_sem_F, MRT_15F)

barplot(matriz, beside=TRUE, col=c("#E6E6E6", "#666666"),
  names.arg=clock, log="y", , xlab="Time between Things request", ylab="Response Time (s)"
)
legend("topright", legend=c("w/o Fog", "15 Fogs"), fill=c("#E6E6E6", "#666666"))

Questão 2

precos <- c("$10-19", "$20-29", "$30-39", "$40-49")
bom <- c(53.8, 33.9, 2.6, 0.0)
muito_bom <- c(43.6, 54.2, 60.5, 21.4)
excelente <- c(2.6, 11.9, 36.8, 78.6)

matriz_precos <- rbind(bom, muito_bom, excelente)
cores <- c("green", "blue", "gold")

barplot(matriz_precos, beside = FALSE, col = cores,
        main = "Quality Rating by Meal Price", xlab = "Meal Price ($)", ylab = "Percentage (%)",
        names.arg = precos)

legend("topright", legend = c("Good", "Very Good", "Excellent"), fill = cores)

Questão 3

data(airquality)
airquality$TempC <- (airquality$Temp - 32) / 1.8
maio <- airquality[airquality$Month == 5, ]

hist(maio$TempC, col="gray", freq=FALSE,
     main="Histograma das Temperaturas em Maio (°C)",
     xlab="Temperatura (°C)", ylab="Densidade")
lines(density(maio$TempC), col="red", lwd=2)

Questão 4

sales <- read.table("https://training-course-material.com/images/8/8f/Sales.txt",header=TRUE)

paises <- sales$COUNTRY
vendas <- sales$SALES
porcent_vendas <- vendas / sum(vendas) * 100
labels <- paste(vendas, " (", round(porcent_vendas, 1), "%)", sep="")
cores <- c("red", "gray", "blue", "orange", "yellow", "green")

pie(porcent_vendas, labels = labels, col = cores, 
    main = "Distribuição de Vendas por País")

legend("topleft", legend = paises, fill = cores)

Questão 5

boxplot(count ~ spray, data=InsectSprays, col="yellow", outline=FALSE,
        main="Contagem de Insetos por Inseticida", xlab="Inseticida", ylab="Contagem")

Questão 6

setwd("D:\\Aulas Mestrado\\ComputacaoparaAnalisedeDados\\Exercicios\\Exercicio12")
dados_NONE <- read.csv("monitoringCloudData_NONE.csv")
dados_0.1 <- read.csv("monitoringCloudData_0.1.csv")
dados_0.5 <- read.csv("monitoringCloudData_0.5.csv")
dados_1 <- read.csv("monitoringCloudData_1.csv")

dados_NONE <- dados_NONE[, c("currentTime", "usedMemory")]
dados_0.1 <- dados_0.1[, c("currentTime", "usedMemory")]
dados_0.5 <- dados_0.5[, c("currentTime", "usedMemory")]
dados_1 <- dados_1[, c("currentTime", "usedMemory")]

tratamento <- function(dados) {
  dados$currentTime <- strptime(dados$currentTime, "%Y-%m-%d %H:%M:%S")
  dados$currentTime <- difftime(dados$currentTime, dados$currentTime[1], units = "hours")
  
  dados$usedMemory_unidade_orig <- gsub("[0-9.]", "", dados$usedMemory)
  dados$usedMemory_orig <- as.numeric(gsub("[^0-9.]", "", dados$usedMemory))
  
  dados$usedMemory <- ifelse(dados$usedMemory_unidade_orig == "TB", dados$usedMemory_orig * 1000000,
                             ifelse(dados$usedMemory_unidade_orig == "GB", dados$usedMemory_orig * 1024,
                                    dados$usedMemory_orig))
  return(dados)
}

dados_NONE <- tratamento(dados_NONE)
dados_0.1 <- tratamento(dados_0.1)
dados_0.5 <- tratamento(dados_0.5)
dados_1 <- tratamento(dados_1)

layout(matrix(1:4, nrow = 2, byrow = TRUE))

plot(dados_NONE$currentTime, dados_NONE$usedMemory, type = "l", col = "black", xlab = "Time (hour)", ylab = "Used Memory (MB)")
plot(dados_0.1$currentTime, dados_0.1$usedMemory, type = "l", col = "black", xlab = "Time (hour)", ylab = "Used Memory (MB)")
plot(dados_0.5$currentTime, dados_0.5$usedMemory, type = "l", col = "black", xlab = "Time (hour)", ylab = "Used Memory (MB)")
plot(dados_1$currentTime, dados_1$usedMemory, type = "l", col = "black", xlab = "Time (hour)", ylab = "Used Memory (MB)")

Questão 7

library(plotly)
## Carregando pacotes exigidos: ggplot2
## 
## Anexando pacote: 'plotly'
## O seguinte objeto é mascarado por 'package:ggplot2':
## 
##     last_plot
## O seguinte objeto é mascarado por 'package:stats':
## 
##     filter
## O seguinte objeto é mascarado por 'package:graphics':
## 
##     layout
library(dplyr)
## 
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)
setwd("D:\\Aulas Mestrado\\ComputacaoparaAnalisedeDados\\Exercicios\\Exercicio12")
netflix <- read.csv("netflix_titles.csv")

netflix_clean <- netflix %>%
  filter(!is.na(country) & country != "") %>%
  filter(!grepl(",", country))

conteudos_netflix_por_pais <- netflix_clean %>%
  count(country) %>%
  arrange(desc(n)) %>%
  slice(1:10)

plot_ly(conteudos_netflix_por_pais, labels=~country, values=~n, type="pie") %>%
  layout(title="Top 10 Países com Mais Conteúdos na Netflix")

Questão 8

dataframe <- data.frame(conteudos_netflix_por_pais)
colnames(dataframe) <- c("País", "Total de conteúdos")
pais <- as.list(dataframe$País)
total_conteudos <- as.list(dataframe$`Total de conteúdos`)

plot_ly(
  type = "table",
  header = list(
    values = names(dataframe),
    fill = list(color = "gray"),
    font = list(color = "white"),
    align = "center"
  ),
  cells = list(
    values = list(pais, total_conteudos),
    align = "center"
  )
)

Questão 9

netflix_dec <- netflix %>%
  filter(!is.na(release_year)) %>%
  mutate(decade = floor(release_year / 10) * 10,
         tipo = ifelse(type == "TV Show", "Série", "Filme")) %>%
  count(decade, tipo)

plot_ly(netflix_dec, x = ~decade, y = ~n, color = ~tipo, type = 'scatter', mode = 'lines+markers',
        colors = c("Filme" = "yellow", "Série" = "blue")) %>%
  layout(title = "Quantidade de Conteúdo por Década",
         xaxis = list(title = "Década"),
         yaxis = list(title = "Quantidade de Conteúdo"))

Questão 10

netflix_genero <- netflix %>%
  filter(type == "Movie", release_year >= 2000 & release_year <= 2010) %>%
  mutate(genre = sapply(strsplit(listed_in, ","), `[`, 1)) %>%
  filter(genre %in% c("Dramas", "Comedies", "Action & Adventure")) %>%
  count(release_year, genre)

plot_ly(netflix_genero, x = ~release_year, y = ~n, color = ~genre, type = 'bar') %>%
  layout(barmode = "group", title = "Filmes por Gênero (2000–2010)",
         xaxis = list(title = "Ano"), yaxis = list(title = "Quantidade"))