climas = read_csv(here::here("data/clima_cg_jp-semanal.csv"),
col_types = "cTdddddd")
glimpse(climas)
## Rows: 2,748
## Columns: 8
## $ cidade <chr> "Campina Grande", "Campina Grande", "Campina Grande", "Campina …
## $ semana <dttm> 1992-12-27, 1993-01-03, 1993-01-10, 1993-01-31, 1993-02-07, 19…
## $ tmedia <dbl> 26.13333, 26.11905, 25.76667, 25.74000, 26.31429, 26.28571, 26.…
## $ tmax <dbl> 30.4, 32.4, 32.2, 32.0, 32.7, 32.7, 32.3, 32.3, 32.1, 31.2, 32.…
## $ tmin <dbl> 20.7, 19.3, 19.7, 19.9, 19.6, 20.0, 20.4, 21.2, 19.0, 19.0, 19.…
## $ chuva <dbl> 0.0, 0.0, 0.0, 0.4, 0.3, 0.0, 4.9, 0.0, 0.0, 6.1, 0.4, 1.2, 0.0…
## $ mes <dbl> 12, 1, 1, 1, 2, 2, 2, 2, 10, 11, 11, 11, 11, 12, 12, 12, 12, 1,…
## $ ano <dbl> 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 199…
# Calcular a temperatura média para João Pessoa e Campina Grande
temperatura_media_jp <- mean(climas$tmedia[climas$cidade == "João Pessoa"])
temperatura_media_cg <- mean(climas$tmedia[climas$cidade == "Campina Grande"])
# Comparar as temperaturas médias
if (temperatura_media_jp > temperatura_media_cg) {
cidade_mais_quente <- "João Pessoa"
} else if (temperatura_media_jp < temperatura_media_cg) {
cidade_mais_quente <- "Campina Grande"
} else {
cidade_mais_quente <- "Empate"
}
A cidade mais quente entre João Pessoa e Campina Grande, com base na temperatura média é João Pessoa com uma média de 27.65318.
Filtramos os dados da temperatura do data frame climas para a cada cidade e nomeamos respectivamente.
# Filtrar os dados de temperatura para Campina Grande
dados_cg <- climas[climas$cidade == "Campina Grande", ]
# Filtrar os dados de temperatura para João Pessoa
dados_jp <- climas[climas$cidade == "João Pessoa", ]
Filtramos os dados de temperatura para cada cidade usando o data frame climas. Criamos um novo data frame dados_cg para os dados de Campina Grande e dados_jp para os dados de João Pessoa.
Em seguida, usamos o pacote ggplot2 para criar um gráfico de linha, onde a temperatura média é mostrada ao longo das semanas. Utilizamos geom_line() para adicionar uma linha para cada cidade, especificando a coluna de semana no eixo x e a temperatura média no eixo y.
# Criar o gráfico de linha
comparacao <- ggplot() +
geom_line(data = dados_cg, aes(x = semana, y = tmedia, color = "Campina Grande")) +
geom_line(data = dados_jp, aes(x = semana, y = tmedia, color = "João Pessoa")) +
labs(title = "Comparação da temperatura entre Campina Grande e João Pessoa",
x = "Semana", y = "Temperatura Média", color = "Cidade") +
scale_color_manual(values = c("Campina Grande" = "blue", "João Pessoa" = "red"))
comparacao
Agora, calculamos a temperatura média para cada cidade usando o data frame climas. Em seguida, calculamos a diferença entre as temperaturas médias das duas cidades. Criamos um novo data frame chamado resultado com as colunas “Cidade”, “Temperatura_Média” e “Diferença” para armazenar os resultados.
# Calcular a diferença entre as temperaturas médias
diferenca_temperatura <- temperatura_media_cg - temperatura_media_jp
# Criar um data frame com os resultados
resultado <- data.frame(
Cidade = c("Campina Grande", "João Pessoa"),
Temperatura_Média = c(temperatura_media_cg, temperatura_media_jp),
Diferença = diferenca_temperatura
)
resultado
## Cidade Temperatura_Média Diferença
## 1 Campina Grande 24.69077 -2.962404
## 2 João Pessoa 27.65318 -2.962404
Então, por fim criamos um gráfico de barras para mostrar a diferença entre as duas cidades.
# Criar o gráfico de barras
grafico <- ggplot(resultado, aes(x = Cidade, y = Temperatura_Média)) +
geom_bar(stat = "identity", fill = "blue") +
labs(title = "Diferença de temperatura média entre Campina Grande e João Pessoa",
x = "Cidade", y = "Diferença de temperatura")
grafico
Aqui começamos por filtrar os dados dos meses de janeiro e fevereiro do nosso data frame climas.
# Filtrar os dados de temperatura para os meses de janeiro e fevereiro
dados_jan_fev_cg <- climas[climas$cidade == "Campina Grande" & climas$mes %in% c(1, 2), ]
dados_jan_fev_jp <- climas[climas$cidade == "João Pessoa" & climas$mes %in% c(1, 2), ]
Depois, calculamos a tempretaura média desses meses para as duas cidades, e em seguida mostramos os valores respectivamente.
# Calcular a temperatura média para Campina Grande nos meses de janeiro e fevereiro
temperatura_media_jan_fev_cg <- mean(dados_jan_fev_cg$tmedia)
# Calcular a temperatura média para João Pessoa nos meses de janeiro e fevereiro
temperatura_media_jan_fev_jp <- mean(dados_jan_fev_jp$tmedia)
# Exibir as temperaturas médias nos meses de janeiro e fevereiro
cat("A temperatura média em Campina Grande nos meses de janeiro e fevereiro é", temperatura_media_jan_fev_cg, "°C.\n")
## A temperatura média em Campina Grande nos meses de janeiro e fevereiro é 25.85547 °C.
cat("A temperatura média em João Pessoa nos meses de janeiro e fevereiro é", temperatura_media_jan_fev_jp, "°C.\n")
## A temperatura média em João Pessoa nos meses de janeiro e fevereiro é 28.65027 °C.
Então pensamos em mostrar esses dados das duas cidades de janeiro e fevereiro em um gráfico.
# Criar o gráfico de linha
grafico_jan_fev <- ggplot() +
geom_line(data = dados_jan_fev_cg, aes(x = semana, y = tmedia, color = "Campina Grande")) +
geom_line(data = dados_jan_fev_jp, aes(x = semana, y = tmedia, color = "João Pessoa")) +
labs(title = "Temperatura nas cidades de Campina Grande e João Pessoa (Janeiro-Fevereiro)",
x = "Semana", y = "Temperatura Média", color = "Cidade") +
scale_color_manual(values = c("Campina Grande" = "green", "João Pessoa" = "orange"))
# Renderizar o gráfico
grafico_jan_fev
R: De início preferi contar a temperatura de todos os meses para as duas cidades, mostrar para cada cidade os meses mais quentes e os meses mais frios. As cidades têm festas juninas? Se sim, qual é a temperatura durante essas festas. Essas festas decorrem em tempos quentes ou frios? Se sim, para qualquer um dos tempos, mostrar os dados da temperatura de forma decrescente a partir do ano mais recente.
Vamos começar por filtrar as duas cidade para evitar perca de dados ou intevenção de outros, e depois vamos calcular a média da temperatura por mês e cidade. Calcule a temperatura média para cada mês em cada cidade e identifique os meses mais quentes e mais frios.
# Calcular a temperatura média para cada mês em Campina Grande
media_por_mes_cg <- aggregate(dados_cg$tmedia, by = list(dados_cg$mes), FUN = mean)
media_por_mes_cg <- media_por_mes_cg[order(media_por_mes_cg$x, decreasing = TRUE), ]
mes_mais_quente_cg <- media_por_mes_cg$Group.1[1]
mes_mais_frio_cg <- media_por_mes_cg$Group.1[length(media_por_mes_cg$Group.1)]
# Calcular a temperatura média para cada mês em João Pessoa
media_por_mes_jp <- aggregate(dados_jp$tmedia, by = list(dados_jp$mes), FUN = mean)
media_por_mes_jp <- media_por_mes_jp[order(media_por_mes_jp$x, decreasing = TRUE), ]
mes_mais_quente_jp <- media_por_mes_jp$Group.1[1]
mes_mais_frio_jp <- media_por_mes_jp$Group.1[length(media_por_mes_jp$Group.1)]
# Exibir os meses mais quentes e mais frios
cat("Campina Grande:\n")
## Campina Grande:
cat("Mês mais quente:", mes_mais_quente_cg, "\n")
## Mês mais quente: 12
cat("Mês mais frio:", mes_mais_frio_cg, "\n\n")
## Mês mais frio: 7
cat("João Pessoa:\n")
## João Pessoa:
cat("Mês mais quente:", mes_mais_quente_jp, "\n")
## Mês mais quente: 3
cat("Mês mais frio:", mes_mais_frio_jp, "\n")
## Mês mais frio: 7
A seguir, criamos um gráfico de barras para representar os meses mais quentes primeiro para João Pessoa.
# Criar o gráfico de barras
grafico <- ggplot(media_por_mes_jp, aes(x = Group.1, y = x)) +
geom_bar(stat = "identity", fill = "lightblue") +
labs(title = "Temperatura Média por Mês - João Pessoa",
x = "Mês", y = "Temperatura Média") +
theme_bw()
# Adicionar destaque para os meses mais quentes e mais frios
grafico <- grafico +
geom_rect(data = media_por_mes_jp[media_por_mes_jp$Group.1 == mes_mais_quente_jp, ],
aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
fill = "red", alpha = 0.3) +
geom_rect(data = media_por_mes_jp[media_por_mes_jp$Group.1 == mes_mais_frio_jp, ],
aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
fill = "blue", alpha = 0.3)
grafico
Por último, criamos um gráfico de barras para representar os meses mais quentes primeiro para Campina Grande.
# Criar o gráfico de barras
grafico <- ggplot(media_por_mes_cg, aes(x = Group.1, y = x)) +
geom_bar(stat = "identity", fill = "lightblue") +
labs(title = "Temperatura Média por Mês - Campina Grande",
x = "Mês", y = "Temperatura Média") +
theme_bw()
# Adicionar destaque para os meses mais quentes e mais frios
grafico <- grafico +
geom_rect(data = media_por_mes_cg[media_por_mes_cg$Group.1 == mes_mais_quente_cg, ],
aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
fill = "brown", alpha = 0.3) +
geom_rect(data = media_por_mes_cg[media_por_mes_cg$Group.1 == mes_mais_frio_cg, ],
aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
fill = "purple", alpha = 0.3)
grafico
Para ver como é a temperatura nas festas juninas das duas cidades, começamos por filtrar a temperatura do mês de junho para as duas cidades.
# Filtrar os dados de temperatura para o mês de junho em Campina Grande
dados_junho_cg <- climas[climas$cidade == "Campina Grande" & climas$mes == "6", ]
# Filtrar os dados de temperatura para o mês de junho em João Pessoa
dados_junho_jp <- climas[climas$cidade == "João Pessoa" & climas$mes == "6", ]
A seguir, criamos um gráfico de barras para representar a temperatura na cidade de Campina Grande no mês de junho, que é onde decorrem as festas juninas para ambas as cidades.
# Criar o gráfico de barras
grafico <- ggplot() +
geom_bar(data = dados_junho_cg, aes(x = semana, y = tmedia, fill = "Campina Grande"),
stat = "identity", position = "dodge") +
labs(title = "Temperatura em Junho",
x = "Semana", y = "Temperatura Média", fill = "Cidade") +
scale_fill_manual(values = c("Campina Grande" = "brown")) +
theme_bw()
grafico
Em seguida criamos um gráfico de barras para representar a temperatura na cidade de João Pessoa como fizemos anteriormente para a outra cidade.
# Criar o gráfico de barras
grafico <- ggplot() +
geom_bar(data = dados_junho_jp, aes(x = semana, y = tmedia, fill = "João Pessoa"),
stat = "identity", position = "dodge") +
labs(title = "Temperatura em Junho",
x = "Semana", y = "Temperatura Média", fill = "Cidade") +
scale_fill_manual(values = c("João Pessoa" = "darkgreen")) +
theme_bw()
grafico
Para responder a pergunta da temperatura do mês de junho ou festas juninas nos últimos anos, pensamos em considerar no data frame climas os dados a partir do ano de 2015, visto que a ausência de dados nos anos mais recentes. Então, criamos um filtro para as duas cidades.
# Filtrar os dados de temperatura para o mês de junho nos últimos anos em Campina Grande
dados_junho_cg <- climas[climas$cidade == "Campina Grande" & climas$mes == "6" & climas$ano >= 2015, ]
# Filtrar os dados de temperatura para o mês de junho nos últimos anos em João Pessoa
dados_junho_jp <- climas[climas$cidade == "João Pessoa" & climas$mes == "6" & climas$ano >= 2015, ]
A seguir, em vez de exibir os dados em uma tabela, pensamos ser mais compreensível mostrar em um gráfico, usamos um de linha,
# Criar o gráfico
grafico <- ggplot() +
geom_line(data = dados_junho_cg, aes(x = ano, y = tmedia, color = "Campina Grande")) +
geom_line(data = dados_junho_jp, aes(x = ano, y = tmedia, color = "João Pessoa")) +
labs(title = "Temperatura em Junho - Últimos anos",
x = "Ano", y = "Temperatura Média", color = "Cidade") +
scale_color_manual(values = c("Campina Grande" = "darkblue", "João Pessoa" = "darkred")) +
theme_bw()
grafico
| ### Q3: Quanto chove por semana em JP e CG? Descreva a distribuição do volume de chuvas para as cidades? R: Começamos por primeiro filtrar os dados das duas cidades, João Pessoa e Campina Grande, do data frame climas. Em seguida, agrupamos os dados por cidade e semana, calculando o total de chuva para cada semana. |
|---|
| ### Q4: Qual a relação entre a temperatura de uma semana e a temperatura da semana anterior (descreva para as duas cidades)? R: Aqui comecei usando o meu código em estética diferente usando pipe, dei início novamente com o filtro dos dados das duas cidades, João Pessoa e Campina Grande, do data frame climas. Em seguida, ordenei os dados por cidade e semana. |
| Depois, fez-se o calculo da temperatura da semana anterior para cada semana em cada cidade usando a função lag() e adicionei essa informação ao data frame. |
| Em seguida, fiz o filtro das semanas que possuem valores válidos tanto para a temperatura atual quanto para a temperatura da semana anterior. |
| Por fim, fez-se o gráfico de dispersão, onde cada ponto representa a temperatura atual em relação à temperatura da semana anterior. Os pontos são coloridos de acordo com a cidade correspondente. |
| Esse gráfico permitirá visualizar a relação entre a temperatura de uma semana e a temperatura da semana anterior para cada uma das cidades, identificando possíveis padrões ou tendências |
| ```r dados_cidades <- climas %>% arrange(cidade, semana) |
| dados_cidades <- dados_cidades %>% group_by(cidade) %>% mutate(temperatura_semana_anterior = lag(tmedia)) |
| dados_cidades <- dados_cidades %>% filter(!is.na(temperatura_semana_anterior)) |
| ggplot(dados_cidades, aes(x = temperatura_semana_anterior, y = tmedia, color = cidade)) + geom_point() + labs(x = “Temperatura Semana Anterior”, y = “Temperatura Atual”, color = “Cidade”) + theme_minimal() ``` |
R: Para responder e esta questão comecei por filtrar os dados das duas cidades, João Pessoa e Campina Grande, do data frame climas. Em seguida, fiz outro filtro dos dados apenas para as semanas em que houve precipitação (chuva > 0).
A seguir, pensei em criar um gráfico de dispersão, onde cada ponto representa a temperatura e a quantidade de chuva correspondentes nas semanas em que houve chuva. Os pontos são coloridos de acordo com a cidade correspondente.
Dessa forma, pensei ser mais eficiente em visualizar a relação entre a temperatura e a quantidade de chuva nas semanas em que houve precipitação em João Pessoa e Campina Grande.
Esse gráfico permitirá identificar possíveis padrões ou tendências entre as variáveis.
dados_cidades <- climas %>%
filter(cidade %in% c("João Pessoa"))
dados_chuva <- dados_cidades %>%
filter(chuva > 0)
ggplot(dados_chuva, aes(x = tmedia, y = chuva, fill)) +
geom_point() +
labs(x = "Temperatura", y = "Chuva (mm)", fill) +
theme_minimal()
Gráfico relacional entre temperatura e as chuvas para João Pessoa.
dados_cidades <- climas %>%
filter(cidade %in% c("Campina Grande"))
dados_chuva <- dados_cidades %>%
filter(chuva > 0)
ggplot(dados_chuva, aes(x = tmedia, y = chuva, color = "")) +
geom_point() +
labs(x = "Temperatura", y = "Chuva (mm)", color = "Campina Grande" ) +
theme_minimal()
Gráfico relacional entre temperatura e as chuvas para Campina
Grande.
Podemos ver que a relação entre ambas é próxima, mas João Pessoa tem mais volume de chuvas do que Campina Grande e sua temperatura também é mais elevada.