knitr::opts_chunk$set(echo = FALSE) library(learnr) library(gradethis) library(ggplot2) library(dplyr) library(tidyr) library(mosaicData) library(visdat) library(plotly) weather <- Weather %>% mutate(month = as.factor(month))
knitr::include_graphics( "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png" )
En esta tarea vamos a estar utilizando el set de datos weather del paquete
mosaicData
. Es un conjunto de datos que contiene información sobre el clima
en 5 ciudades del mundo para los años: 2016 y 2017. Contiene 3655 observaciones
y 25 variables.
glimpse(weather)
Descripción de las variables
| Variable | Descripción |
| :----------: | :---------------------: |
| city
| Nombre de la ciudad |
| date
| Fecha |
| year
| Año |
| month
| Mes |
| day
| Día |
| high_temp
| Temperatura más alta del dia en F |
| avg_temp
| Temperatura promedio del dia en F |
| low_temp
| Temperatura más baja del dia en F |
| high_dewpt
| Punto de rocío más alto del dia en F |
| avg_dewpt
| Punto de rocío promedio del dia en F |
| low_dewpt
| Punto de rocío más bajo del dia en F |
| high_humidity
| Humedad relativa más alta del dia |
| avg_humidity
| Humedad relativa promedio del dia |
| low_humidity
| Humedad relativa más baja del dia |
| high_hg
| Presión del nivel del mar más alta en pulgadas de mercurio |
| avg_hg
| Presión del nivel del mar promedio en pulgadas de mercurio |
| low_hg
| Presión del nivel del mar más baja en pulgadas de mercurio |
| high_vis
| Visibilidad más alta del día en millas |
| avg_vis
| Visibilidad promedio del día en millas |
| low_vis
| Visibilidad más baja del día en millas |
| high_wind
| Velocidad del viento más alta en el día en mph |
| avg_wind
| Velocidad del viento promedio en el día en mph |
| low_wind
| Velocidad del viento más baja en el día en mph |
| precip
| Precipitación presentada en el día |
| events
| Evento meteorológico que ocurrió en el día |
Es importante conocer dónde y cuántos valores faltantes tenemos en un set de datos. Visualice los NAs de la base de datos weather.
vis_dat(weather)
En weather tenemos una variable llamada avg_temp
que contiene la
temperatura promedio presentada cada día y además el día se ve reflejado en la
variable date
. Cree un gráfico que muestre una línea de regresión suavizada
para la temperatura promedio a través del tiempo contemplado. Excluya el error
estándar.
ggplot(weather)
ggplot(weather, aes(x = date, y = avg_temp)) + geom_smooth(se = FALSE)
Al variable avg_wind
en weather muestra le velocidad promedio del viento
para cada fecha (date
), además, tenemos en city
el nombre de la ciudad
donde se recolectó cada dato. Utilizando estas tres variables cree un gráfico
que muestra la velocidad promedio del viento a través del tiempo, en cada
ciudad. Las etiquetas de la fecha deben mostrar solo el mes y el año y para que
se vea más ordenado, "corte" la fecha cada 5 meses.
ggplot(weather)
ggplot(data = weather, aes(x = date, y = avg_wind, group = city, fill = city)) + geom_bar(stat = "identity") + scale_fill_viridis_d() + scale_x_date(date_labels = "%b-%Y", date_breaks = "5 months") + theme_minimal(base_size = 10)
En weather tenemos una variable llamada avg_humidity
con el promedio de
humedad que se presentó cada día. Además, la variable month
con solamente el
mes de la fecha registrada y events
con el o los eventos meteorológicos que
se presentaron cada día. Ustede debe crear un gráfico que muestre la relación
entre los eventos meteorológicos y la humedad promedio en cada mes. Coloque las
etiquetas correspondientes a cada eje, título, leyenda y subtítulo. Además,
utilice un "tema" (theme_
) y controle el tamaño de las letras.
ggplot(weather)
ggplot(weather, aes(x = month, y = avg_humidity, group = events, fill = events)) + geom_bar(stat = "summary") + scale_fill_viridis_d() + xlab("Mes") + ylab("Humedad (g/m3)") + labs(title = "Humedad promedio" , subtitle = "por mes y evento", fill = "Evento") + theme_bw(base_size = 14) + theme(axis.text.x = element_text(angle = 45))
avg_hg
con un histograma y la función de densidad y muestre la media de esta distribución con una líneaGrafique la distribución de densidad de la variable avg_hg
(presión del nivel
del mar promedio en pulgadas de mercurio) con la densidad como tal y un
histograma. Debe asegurarse de que el histograma tenga una transparencia
suficiente para que el histograma se logre diferenciar. Además, agregue una
línea que muestre la media general de la vriable, haga que esta línea esté
compuesta de puntos, sea de tamaño 2 y azul.
ggplot(weather)
ggplot(weather, aes(x = avg_hg)) + geom_histogram(aes(y = ..density..), colour = "black", fill = "white") + geom_density(alpha = .7, fill = "lightblue") + geom_vline(aes(xintercept = mean(avg_hg)), color = "blue", linetype = "dotted", size = 2)
Utilizando ggplotly, convierta un gráfico normal a un gráfico interactivo que
muestre el comportamiento del punto de rocío promedio (avg_dewpt
) a través del
tiempo (date
) para cada ciudad (city
). En el eje x, para la fecha, utilice
el formato: año, día, mes y "corte" la fecha cada dos meses, además, haga que
las etiquetas de este eje tengan un ángulo de 90. Recuerde poner las etiquetas
correspondientes.
interactivo <- ggplot(weather)
interactivo <- ggplot(weather, aes(x = date, y = avg_dewpt, color = city)) + geom_line() + scale_color_viridis_d() + scale_x_date(date_labels = "%Y-%d-%m", date_breaks = "2 month") + xlab("Fecha") + ylab("Punto de rocío (grados F)") + labs(title = "Punto de rocío promedio", color = "Ciudad") + theme(axis.text.x = element_text(angle = 45)) ggplotly(interactivo)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.