climas = read_csv(here::here("data/clima_cg_jp-semanal.csv"), 
                  col_types = "cTdddddd")

Temperatura

Qual foi o São João mais frio de CG que está nos nossos dados?

    • Encontrei a necessidade de criar um ranking para responder a pergunta, nesse caso, foi colocada em destaque a média das chuvas no periodo de junho na cidade de Campina Grande, utilizando o aspecto de linearidade dos anos no eixo X, tratando como um tipo específico de timeline.
campina = climas %>%
    filter(mes == 6 & cidade == "Campina Grande") %>%
    group_by(ano) %>%
    summarise(temp_media = mean(tmedia)) %>% 
    mutate(mais_frio = if_else(temp_media == min(temp_media), TRUE, FALSE))

campina
## # A tibble: 22 x 3
##      ano temp_media mais_frio
##    <dbl>      <dbl> <lgl>    
##  1  1995       22.4 FALSE    
##  2  1996       22.5 FALSE    
##  3  1997       22.9 FALSE    
##  4  1998       23.8 FALSE    
##  5  1999       23.9 FALSE    
##  6  2002       22.4 FALSE    
##  7  2003       22.9 FALSE    
##  8  2004       22.1 TRUE     
##  9  2005       22.3 FALSE    
## 10  2006       22.8 FALSE    
## # … with 12 more rows
ggplot(campina, aes(x=ano, y=temp_media)) +
    geom_segment(aes(xend=ano, y=min(temp_media)- 0.3, yend=temp_media), color="skyblue", size=1) +
    geom_point(aes(color=mais_frio), size=4, alpha=0.6) +
    theme_light() +
    theme(
        panel.grid.major.y = element_blank(),
        panel.border = element_blank(),
        axis.ticks.y = element_blank(),
        axis.text.x = element_text(angle = 40, hjust = 1), 
        legend.position = "None"
    ) +
    labs(title="Temperatura no mês de Junho em Campina Grande", 
         subtitle="Dados de 1995 até 2018", 
         caption="fonte: INMET",
         y = "Temperatura em Cº",
         x = "Ano")  + 
    scale_x_continuous(breaks = 1995:2018)

Portanto, vemos que o São João mais frio em Campina Grande aconteceu no ano de 2004.

Chuva

A distribuição é diferente em meses específicos?

    • Utilizando boxplots para nos auxiliar a responder esta pergunta. Na visualização a seguir, cada boxplot representa a dispersão dos valores de temperatura média para cada mês do ano. Uma melhoria realizada nesse gráfico, comparado com a atividade passada, foi o uso de uma nova escala que permite maior detalhamento de variação dos dados em cada mês.
climas <- climas %>% 
    mutate(mes = as.factor(month(semana)))


climas %>% 
    ggplot(aes(x = mes, y = chuva)) +
    geom_boxplot(aes(fill = cidade)) +
    scale_y_sqrt() +
    labs(title = "Distribuição da Intensidade das Chuvas por Mês", y = "Índice Pluviométrico", x = "Mês")

Dada a natureza dos dados, temos muitas ocorrências de pequenas quantidades de chuva e algumas poucas de valores muito altos. Para facilitar a visualização utilizamos uma escala de raiz quadrada.

Percebemos então que a distribuição é bem mais dispersa à medida que nos aproximamos da metade do ano, atingindo picos mais altos em Julho, podemos perceber esta tendência pelo tamanho mais alongado das caixas. A distribuição se torna mais concentrada no início e final do ano.

Pergunta Nova

Qual foi o inverno mais frio e o verão mais quente em JP e CG?

    • Nessa nova questão elaborada, foram criados dois gráficos semelhantes a primeira questão respondida, um referente a JP e outro a CG, a idéia é mostrar a maior e menor temperatura média, em um periodo que chamamos de inverno e verão, como inverno sendo os meses 5, 6, 7 e 8, e considerando verão como os meses 11, 12, 1 e 2 do ano.
cidades = climas %>%
    mutate(estacao = if_else(mes %in% 5:8, "Inverno", if_else(mes %in% c(11, 12, 1, 2), "Verao", "Outro")))%>%
    filter(estacao != "Outro" ) %>% 
    group_by(estacao, ano, cidade) %>% 
    summarise(temp_media = mean(tmedia))

cidades %>% 
    filter(cidade == "Campina Grande" ) %>% 

ggplot( aes(x=ano, y=temp_media)) +
    geom_segment(aes(xend=ano, y=min(temp_media)- 0.3, yend=temp_media), color="skyblue", size=1) +
    geom_point(aes(color=estacao), size=4, alpha=0.6) +
    theme_light() +
    theme(
        panel.grid.major.y = element_blank(),
        panel.border = element_blank(),
        axis.ticks.y = element_blank(),
        axis.text.x = element_text(angle = 65, hjust = 1) 
    ) +
    labs(title="Temperatura média em Campina Grande", 
         subtitle="Dados de 1992 até 2018", 
         y = "Temperatura em Cº",
         x = "Ano")   +
    scale_x_continuous(breaks = 1987:2019)

cidades %>% 
    filter(cidade == "João Pessoa" ) %>% 

ggplot( aes(x=ano, y=temp_media)) +
    geom_segment(aes(xend=ano, y=min(temp_media)- 0.3, yend=temp_media), color="skyblue", size=1) +
    geom_point(aes(color=estacao), size=4, alpha=0.6) +
    theme_light() +
    theme(
        panel.grid.major.y = element_blank(),
        panel.border = element_blank(),
        axis.ticks.y = element_blank(),
        axis.text.x = element_text(angle = 65, hjust = 1) 
    ) +
    labs(title="Temperatura média em João Pessoa", 
         subtitle="Dados de 1987 até 2019", 
         y = "Temperatura em Cº",
         x = "Ano")   +
    scale_x_continuous(breaks = 1987:2019)

Para a cidade de Campina Grande, temos o inverno mais frio em 2011 e o verão mais quente em 1998. Para João Pessoa, o inverno mais frio aconteceu em 1991, já o verão mais quente em 2017. Tais extremos são dados pelos pontos vermelhos (inverno) mais baixos e azuis (verão) mais altos nas séries de anos.