Primeros pasos con ggplot2
ggplot2
, el cual es parte del tidyverse
.ggplot2
. Si no lo tienes instalado, puedes hacerlo con el siguiente comando: install.packages("ggplot2")
.library(ggplot2)
o bien, puedes cargar todos los paquetes del tidyverse
con library(tidyverse)
.ggplot2
con library(ggplot2)
.ggplot()
.rnorm()
, que genera datos aleatorios de una distribución normal. Esta función toma tres argumentos: el número de datos que queremos, la media y la desviación estándar. Recuerda que la media y la desviación estándar son parámetros que definen la distribución normal.set.seed(42)
fija la semilla para que los resultados sean reproducibles. Se utiliza para generar números aleatorios, pero de manera controlada para que siempre obtengamos los mismos resultados. El valor específico (42
) es arbitrario, pero mientras sea el mismo, los resultados serán los mismos.rnorm(1000, mean = 50, sd = 10)
genera 1000 datos de una distribución normal con media 50 y desviación estándar 10.head()
y tail()
muestran los primeros y últimos datos, respectivamente.as.data.frame()
convierte los datos en un dataframe, que es el formato que ggplot2 espera.ggplot()
estos dos argumentos:
data
: el dataset que queremos graficar.aes()
: las estéticas (aesthetics) del gráfico, como qué variable va en el eje x o y. Como estamos haciendo un histograma, solo necesitamos especificar la variable x
.geom_histogram()
.+
al final de la línea anterior. Esto nos permite agregar múltiples capas al gráfico si es necesario, sumando capas una tras otra. Conceptualmente es similar a cómo funciona el operador pipa %>%
, pero específico de ggplot2.geom_histogram()
, podemos especificar el número de bins
(contenedores) que queremos en el histograma. Esto determina cuántas barras tendrá el gráfico.bins
) al histograma?Observa que ahora podemos llamar el objeto histograma_ggplot
para mostrar el gráfico sin necesidad de volver a escribir todo el código.
histograma_ggplot
y agregamos la función labs()
(labels o etiquetas) y especificamos el título y las etiquetas que queremos.alturas_df
(ya está cargado en la diapositiva) y tiene las columnas altura
en cm e isla
con dos categorías (isla #1, isla #2).alturas_df
).altura
) de las jirafas en las dos islas.binwidth = 1
en geom_histogram()
para especificar el ancho de las barras del histograma. Puedes experimentar con diferentes valores para ver cómo cambia el gráfico. En la próxima diapositiva está la solución.fill = isla
dentro de aes()
.fill = isla
le dice a ggplot que queremos que cada barra del histograma se llene con un color diferente según el tipo de isla.fill
con color
… fill
se refiere al relleno de las barras, mientras que color
se refiere al contorno de las barras.fill
por color
en el código.+ scale_fill_manual()
al gráfico.values = c("color1", "color2")
.
c()
. Esto es importante para que R entienda que son dos colores diferentes. Ten en cuenta que debes proporcionar tantos colores como categorías tengas en tu gráfico, en este caso, dos.red
, blue
, green
, yellow
, black
, white
, entre otros. También puedes usar códigos hexadecimales como #FF0000
para rojo, #0000FF
para azul, etc.------
) con los colores que prefieras.p
que creamos anteriormente. Seguimos agregando capas al gráfico con el operador +
y lo seguimos guardando en el objeto p
para futuras modificaciones.p
o bien, puedes usar print(p)
.Ahora, quitemos el espacio en blanco alrededor del gráfico para hacerlo más limpio y movamos la leyenda a la parte superior. - NOTA: en lugar de usar legend.position = "top"
, también puedes usar los valores bottom
, left
, right
, none
.
ggsave()
. Esta función toma varios argumentos: primero, el nombre del archivo que queremos guardar (por ejemplo, "histograma_jirafas.png"
), luego el objeto del gráfico que queremos guardar (en este caso, p
), y finalmente, el ancho, alto y resolución de la imagen (300 dpi es una resolución estándar para impresión).