O contexto desse rmd é uma monitoria de R. Estamos no segundo
encontro. Até agora, esperamos que vocês já tenham conseguido fazer um
gráfico bem simples usando o mtcars
e hoje vamos aprender a
usar dados de temperatura usando brclimr.
Durante a monitoria a gente teve tempos difíceis por conta da
dificuldade de instalar o loadinstall
.
Tempos melhores estão por vir.
É possível instalar o pacote pela via normal, e pelo
devtools
.
install.packages("loadinstall")
#ou
devtools::install_github("flaviaerius/loadinstall")
Se, mesmo assim, você não conseguir instalar o
loadinstall,
instale e carregue pacote por pacote. Os
pacotes usados:
ggplot2
ggthemes
arrow
brclimr
tidyverse
lubridate
readr
Para quem conseguiu instalar o loadinstall
tranquilamente, basta fazer isso aqui.
library(loadinstall)
packages <- c("gtrendsR", "ggplot2", "ggthemes", "arrow", "brclimr", "tidyverse", "lubridate", "readr")
lapply(packages, dynamic_require)
## [[1]]
## [1] "gtrendsR" "loadinstall" "stats" "graphics" "grDevices"
## [6] "utils" "datasets" "methods" "base"
##
## [[2]]
## [1] "ggplot2" "gtrendsR" "loadinstall" "stats" "graphics"
## [6] "grDevices" "utils" "datasets" "methods" "base"
##
## [[3]]
## [1] "ggthemes" "ggplot2" "gtrendsR" "loadinstall" "stats"
## [6] "graphics" "grDevices" "utils" "datasets" "methods"
## [11] "base"
##
## [[4]]
## [1] "arrow" "ggthemes" "ggplot2" "gtrendsR" "loadinstall"
## [6] "stats" "graphics" "grDevices" "utils" "datasets"
## [11] "methods" "base"
##
## [[5]]
## [1] "brclimr" "arrow" "ggthemes" "ggplot2" "gtrendsR"
## [6] "loadinstall" "stats" "graphics" "grDevices" "utils"
## [11] "datasets" "methods" "base"
##
## [[6]]
## [1] "lubridate" "forcats" "stringr" "dplyr" "purrr"
## [6] "readr" "tidyr" "tibble" "tidyverse" "brclimr"
## [11] "arrow" "ggthemes" "ggplot2" "gtrendsR" "loadinstall"
## [16] "stats" "graphics" "grDevices" "utils" "datasets"
## [21] "methods" "base"
##
## [[7]]
## [1] "lubridate" "forcats" "stringr" "dplyr" "purrr"
## [6] "readr" "tidyr" "tibble" "tidyverse" "brclimr"
## [11] "arrow" "ggthemes" "ggplot2" "gtrendsR" "loadinstall"
## [16] "stats" "graphics" "grDevices" "utils" "datasets"
## [21] "methods" "base"
##
## [[8]]
## [1] "lubridate" "forcats" "stringr" "dplyr" "purrr"
## [6] "readr" "tidyr" "tibble" "tidyverse" "brclimr"
## [11] "arrow" "ggthemes" "ggplot2" "gtrendsR" "loadinstall"
## [16] "stats" "graphics" "grDevices" "utils" "datasets"
## [21] "methods" "base"
As pessoas ficam falando que eu estou “acostumado” ao calor só porque sou de Salvador na Bahia. Geralmente falo que lá não faz tanto calor quando faz em Viçosa. Vou mostrar adiante que estou errado, ou certo… tem que ver o que as temperaturas máximas registradas nas duas cidades dizem.
Vamos pegar estes dados usando o brclimr.
Já mostrei onde que estão os códigos dos municípios no site do IBGE.
Vou pegar primeiro os dados de Salvador, só depois a gente mexe com os dados de Viçosa.
Vamos olhar só os dados da temperatura máxima em Salvador, em bases diárias, entre 2015 e 2018.
salvador<-fetch_data(
code_muni = 2927408,
product = "brdwgd",
indicator = "tmax",
statistics = "mean",
date_start = as.Date("2015-01-01"),
date_end = as.Date("2018-12-31")
)
head(salvador)
## # A tibble: 6 × 2
## date value
## <date> <dbl>
## 1 2015-01-01 31.5
## 2 2015-01-02 31.2
## 3 2015-01-03 31.2
## 4 2015-01-04 30.7
## 5 2015-01-05 30.3
## 6 2015-01-06 31.7
g3 <- ggplot(data = salvador, aes(x = date, y = value)) +
geom_line() + # Adiciona as linhas
labs(x = "", y = "Temperatura(max)") + # Adiciona rótulos aos eixos
ggtitle("Salvador - BA") + # Adiciona título ao gráfico
theme_minimal() # Define um tema para o gráfico
g3
g4 <- ggplot(data = salvador, aes(x = date, y = value)) +
geom_point() + # pontos
labs(x = "", y = "Temperatura(max)") + # Adiciona rótulos aos eixos
ggtitle("Salvador - BA") + # Adiciona título ao gráfico
theme_minimal() # Define um tema para o gráfico
g4
Você pode querer, pontos e linhas:
g5 <- ggplot(data = salvador, aes(x = date, y = value)) +
geom_line() + # Adiciona as linhas
geom_point()+
labs(x = "", y = "Temperatura(max)") + # Adiciona rótulos aos eixos
ggtitle("Salvador - BA") + # Adiciona título ao gráfico
theme_minimal() # Define um tema para o gráfico
g5
Mas o que eu mais gosto é o que dá alguma idéia de temperatura com cores.
Pra mim, abaixo de 27 de máxima tá tranquilo, entre 27 e 30 tá quente, entre 30 e 33 tá bem quente, acima de 33 tá impossível. Vou procurar umas cores que reflitam isso.
g7 <- ggplot(data = salvador, aes(x = date, y = value, color = value)) +
geom_point() + # pontos
labs(x = "", y = "Temperatura (max)") + # Adiciona rótulos aos eixos
ggtitle("Salvador - BA") + # Adiciona título ao gráfico
theme_minimal() + # Define um tema para o gráfico
scale_color_gradient(low = "blue", high = "red") # Adiciona uma escala de cores
print(g7)
Você pode achar que precisa destacar só os valores acima de 33 graus, que é quando as coisas ficam realmente desconfortáveis.
g10 <- ggplot(data = salvador, aes(x = date, y = value, color = value > 33)) +
geom_point() + # pontos
labs(x = "", y = "Temperatura (max)") + # Adiciona rótulos aos eixos
ggtitle("Salvador - BA") + # Adiciona título ao gráfico
theme_minimal() + # Define um tema para o gráfico
scale_color_manual(values = c("grey", "red"), guide = FALSE) + # Define cores manualmente
guides(color = guide_legend(override.aes = list(shape = 19))) # Remove legenda de cores
print(g10)
Veja que o verão de 2018-2019 foi atipicamente desconfortável em Salvador. Muitos dias com temperatura acima dos 33 graus.
Você obviamente pode customizar as legendas.
vicosa<-fetch_data(
code_muni = 3171303,
product = "brdwgd",
indicator = "tmax",
statistics = "mean",
date_start = as.Date("2015-01-01"),
date_end = as.Date("2018-12-31")
)
head(vicosa)
## # A tibble: 6 × 2
## date value
## <date> <dbl>
## 1 2015-01-01 33.0
## 2 2015-01-02 35.7
## 3 2015-01-03 33.7
## 4 2015-01-04 32.0
## 5 2015-01-05 29.5
## 6 2015-01-06 30.2
g12 <- ggplot(data = vicosa, aes(x = date, y = value, color = value > 33)) +
geom_point() + # pontos
labs(x = "", y = "Temperatura (max)") + # Adiciona rótulos aos eixos
ggtitle("Vicosa - MG") + # Adiciona título ao gráfico
theme_minimal() + # Define um tema para o gráfico
scale_color_manual(values = c("grey", "red"), guide = FALSE) + # Define cores manualmente
guides(color = guide_legend(override.aes = list(shape = 19))) # Remove legenda de cores
print(g12)
Eu achei parecido.
O verão de 2016-2017 mesmo, Viçosa teve mais dias de temperaturas acima
dos 33 graus do que Salvador.
Olhe aqui qual a cidade mais quente do Brasil, e ela fica em MG.
Vamos olhar as temperaturas máximas lá e fazer o gráfico destacando os dias acima de 33 graus.
#São Romão
sr<-fetch_data(
code_muni = 3164209,
product = "brdwgd",
indicator = "tmax",
statistics = "mean",
date_start = as.Date("2015-01-01"),
date_end = as.Date("2018-12-31")
)
head(sr)
## # A tibble: 6 × 2
## date value
## <date> <dbl>
## 1 2015-01-01 36.0
## 2 2015-01-02 36.5
## 3 2015-01-03 36.5
## 4 2015-01-04 33.7
## 5 2015-01-05 35.1
## 6 2015-01-06 34.4
g22 <- ggplot(data = sr, aes(x = date, y = value, color = value > 33)) +
geom_point() + # pontos
labs(x = "", y = "Temperatura (max)") + # Adiciona rótulos aos eixos
ggtitle("Sao Romao - MG") + # Adiciona título ao gráfico
theme_minimal() + # Define um tema para o gráfico
scale_color_manual(values = c("grey", "red"), guide = FALSE) + # Define cores manualmente
guides(color = guide_legend(override.aes = list(shape = 19))) # Remove legenda de cores
print(g22)
Registrar a monitoria no Radoc para que as horas possam ser contadas para os alunos
Usando um comando chamado merge,
junte as duas bases
de dados, de Salvador e de Viçosa, e faça um gráfico com as temperaturas
máximas de cada cidade ao longo do tempo
Perguntem ao Chat e ao Google!