# Feliz cumpleaños, {ggplot2}!

> Hoy está de cumpleaños el paquete {ggplot2} para visualización de datos en R! Así que le hice un gráfico de mini celebración en 20 líneas.

- URL: https://bastianolea.rbind.io/blog/2025-06-11/
- Fecha: 2025-06-11
- Autor: Bastián Olea Herrera
- Etiquetas: ggplot2, gráficos

---

Hoy está de cumpleaños el paquete `{ggplot2}` para visualización de datos en R! Este paquete es indispensable para explorar el mundo de los datos, ya que su filosofía o gramática está muy bien lograda, y su flexibilidad posibilita crear casi lo que desees, siempre siguiendo principios firmemente sostenidos en un enfoque de ciencia de datos.

Se trata de una herramienta que uso día a día, así que con mucho cariño (🤪) le hice un gráfico de mini celebración en 20 líneas 💜

``` r
library(ggplot2)
library(dplyr)
library(ggtext)
library(ragg)

tibble(x = sample(1:18), y = sample(1:18)) |> 
  ggplot() +
  geom_text(aes(label = "⭐️", y, x), size = 4) +
  geom_text(aes(label = "🎈", x, y, size = y)) +
  annotate("text", y = -1, x = 18/2, hjust = 0.5, 
           label = "🎂", size = 12) +
  theme_void() +
  coord_cartesian(xlim = c(0, 18), ylim = c(-2, 20)) +
  scale_size(range = c(4, 9)) +
  guides(size = guide_none()) +
  labs(title = "Feliz cumpleaños <span style='font-family:
                Menlo;'>{ggplot2}</span> 🎉") +
  theme(plot.title = element_markdown(family = "Helvetica"),
        plot.margin = margin(8, 8, 8, 8))
```

![](https://bastianolea.rbind.io/blog/2025-06-11/grafico_ggplot_cumple.jpeg)

El gráfico usa números al azar para poner globos y estrellas. Los globitos crecen con respecto al eje *y*, mientras que la torta simplemente se ubica abajo y al centro.

![](https://bastianolea.rbind.io/blog/2025-06-11/linkedin.jpg)

Partió de una idea mucho más sencilla que comenté [en una publicación de celebración que hizo Hadley Wickham](https://www.linkedin.com/posts/hadleywickham_rstats-activity-7338353740267122688-ELEh), desarrollador de `{ggplot2}`, `{dplyr}` y muchos más paquetes del [Tidyverse](https://www.tidyverse.org).

El original era así de simple:

``` r
tibble(a = sample(1:18, 18),
 b = sample(1:18, 18)) |> 
 ggplot() +
 aes(a, b, size = b) +
 geom_text(aes(label = "🎈")) +
 theme_void() +
 guides(size = guide_none())
```

Intenta reproducirlo en tu R! Si no te resulta, puede deberse a que el backend gráfico por defecto de R tiene problemas con los textos complejos, como los emojis En las configuraciones de RStudio, entra a *General* y luego en *Graphics* puedes cambiar el backend por uno como AGG (del [paquete `{ragg}`](https://ragg.r-lib.org))

<!-- ![](https://bastianolea.rbind.io/blog/2025-06-11/grafico_ggplot_cumple_penca.png)
 -->

Si quieres aprender `{ggplot2}` desde cero, [revisa este tutorial gratuito que hice](https://bastianolea.rbind.io/blog/r_introduccion/tutorial_visualizacion_ggplot/), donde te explico a usar esta útil y flexible herramienta desde lo más sencillo, con muchos ejemplos de visualizaciones aplicadas a datos reales.
