Ggplot más fácil con el paquete ggeasy R

El paquete R de visualización de datos ggplot2 es extremadamente potente y flexible. Sin embargo, no siempre es fácil recordar cómo hacer todas las tareas, especialmente si no es un usuario frecuente. ¿Cómo se cambia el tamaño del título de un gráfico? ¿Cómo se eliminan los títulos de las leyendas? Mi solución habitual es guardar fragmentos de código de RStudio para las cosas que tengo problemas para recordar. Pero también hay un paquete que puede ayudar: ggeasy.

Como su nombre lo dice, el objetivo de ggeasy es, así, hacer ggplot2 fácil - o al menos EASI er . Tiene lo que algunas personas pueden encontrar como funciones más intuitivas para tareas típicas, principalmente alrededor del formato de texto y ejes. (Este paquete no afecta la apariencia y el comportamiento de las líneas, puntos y barras ). Todas las funciones de ggeasy comienzan con, easy_así que sí, es fácil encontrarlas usando el autocompletado de RStudio. Puedes ver cómo funciona eso en el video de arriba.

Si desea seguir mi ejemplo a continuación, ggeasy está en CRAN, por lo que puede instalarlo con install.packages("ggeasy"). También usaré los paquetes ggplot2 (naturalmente), dplyr, rio y lubridate. Más adelante, agregaré el paquete de mosaico para una colocación súper simple de múltiples gráficos; eso también está en CRAN.

Para este ejemplo, voy a usar datos sobre lo que está en la mente de la mayoría de las personas en estos días: el coronavirus. Puede descargar un archivo CSV con datos por estado de EE. UU. Del Proyecto de seguimiento de coronavirus con

download.file ("// covidtracking.com/api/states/daily.csv",

destfile = "covid19.csv")

(Puede nombrar el Archivo Destino archivo de destino algo que le gustaría.) He utilizado rio::import()para importar los datos, pero también se puede utilizar readr::read_csv(), read.csv(), data.table::fread(), o cualquier otra función para importar el CSV.

Con rio, las fechas entraron como números enteros, así que usaré la ymd()función de lubridate para convertir esa columna en objetos Date:

datos $ fecha <- lubridate :: ymd (datos $ fecha)

Para crear un gráfico que no sea demasiado difícil de entender, filtraré estos datos solo para un par de estados para que no haya 50 líneas de series de tiempo separadas. Elegí Louisiana para ver el aumento de casos allí: el gobernador de Louisiana dijo que el estado tiene uno de los crecimientos más rápidos del mundo en casos. (Se especula que el Mardi Gras en febrero podría haber causado un conglomerado en Nueva Orleans). También agregaré Massachusetts, un estado con aproximadamente un 50 por ciento más de personas que Louisiana, ya que mi base es allí.

Después de filtrar los datos, crearé un gráfico lineal básico de los datos:

estados2 <- filtro (datos, estado% en% c ("LA", "MA"))

ggplot (estados2, aes (x = fecha, y = positivo, color = estado)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Casos diarios de Covid-19 de Louisiana y Massachusetts")

Sharon Machlis,

Eso es un aumento bastante pronunciado. Algo de eso puede deberse a un aumento en las pruebas; tal vez solo sepamos sobre más casos porque las pruebas aumentaron. Lo veré en un minuto.

Primero, sin embargo, ¿qué tal algunos ajustes a este gráfico?

Comencemos agrandando el título del gráfico. Para usar ggeasy, comenzaría a escribir easy_ en el panel de fuentes superior izquierdo de RStudio y me desplazaría hasta encontrar lo que quiero. 

Sharon Machlis,

easy_plot_title_size()parece la función que necesito. Puedo cambiar el título del gráfico al tipo de 16 puntos con este código:

ggplot (estados2, aes (x = fecha, y = positivo, color = estado)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Casos diarios de Covid-19 de Luisiana y Massachusetts") +

easy_plot_title_size (16)

Puedo rotar el texto del eje x con easy_rotate_x_labels(90)una rotación de 90 grados y eliminar el título de la leyenda (es bastante obvio que estos son estados) con easy_remove_legend_title(). El código completo del gráfico se encuentra a continuación, incluido el almacenamiento del gráfico en una variable llamada positives.

positivos <- ggplot (estados2, aes (x = fecha, y = positivo, color = estado)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Casos diarios de Covid-19 de Luisiana y Massachusetts") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

A continuación, me gustaría ver los resultados negativos de las pruebas de coronavirus para ver si están aumentando a tasas similares a las positivas. Usaré el mismo código pero simplemente cambiaré la columna y a negativos.

negativos <- ggplot (estados2, aes (x = fecha, y = negativo , color = estado)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Lousiana & Massachusetts Negatives") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("título") +

easy_remove_y_axis ("título") +

easy_remove_legend_title ()

Sharon Machlis,

Parece haber un aumento mayor de aspectos positivos que negativos en Luisiana. Aunque no sabemos si eso se debe a que los criterios de prueba cambiaron o algo más.

Sería útil ver estos dos gráficos uno al lado del otro. Ahí es donde entra el paquete de patchwork. 

Con solo estas dos líneas de código, la primera carga el paquete patchwork: 

biblioteca ("mosaico")

positivos + negativos

Entiendo esto:

Sharon Machlis,

Es increíblemente fácil colocar varios gráficos con mosaico. Para obtener más información sobre cómo personalizar los diseños, visite el sitio web de patchwork.

Ahora puedo regresar y usar ggeasy para eliminar una de las leyendas para que no haya dos, y luego volver a ejecutar patchwork:

negativos <- negativos +

easy_remove_legend ()

positivos + negativos

Claramente, ggeasy es bastante útil para una exploración de datos rápida y fácil.

Para obtener más sugerencias de R, diríjase a la página "Haga más con R" o consulte la lista de reproducción de YouTube "Haga más con R".