Ask me anything
Ithy Logo
Sign in to save

Agregando Leyendas a Diagramas de Torta en R

Una guía completa para mejorar tus visualizaciones con la función pie()

agregar-leyenda-diagrama-torta-r-dxdoo3m1

Crear diagramas de torta (también conocidos como gráficos circulares o de pastel) en R utilizando la función base pie() es una forma sencilla de visualizar proporciones de datos categóricos. Sin embargo, para que un diagrama de torta sea verdaderamente informativo, es crucial incluir una leyenda que identifique cada "rebanada" con su categoría correspondiente. Este artículo te guiará a través del proceso de añadir y personalizar leyendas en tus diagramas de torta creados con la función pie() en R.

Aspectos Clave para Añadir Leyendas

  • Uso de la función legend(): La función fundamental para añadir leyendas en gráficos base de R, incluyendo los diagramas de torta, es legend(). Esta función se llama después de crear el gráfico.
  • Especificación de la ubicación: Puedes controlar la posición de la leyenda dentro o fuera del área del gráfico utilizando argumentos como coordenadas (x, y) o palabras clave predefinidas como "topright", "bottomleft", "center", entre otras.
  • Personalización de la leyenda: La función legend() ofrece numerosas opciones para personalizar la apariencia de la leyenda, incluyendo el texto de las etiquetas, los colores, el tamaño, la forma de los marcadores (en este caso, rellenos de color para las rebanadas) y la inclusión de un título.

Creación de un Diagrama de Torta Básico

Antes de añadir una leyenda, primero necesitas tener un diagrama de torta. La función pie() en R toma un vector numérico no negativo como entrada, donde cada valor representa el tamaño de una rebanada. También puedes proporcionar etiquetas para cada rebanada utilizando el argumento labels.


# Crear un vector de datos
proporciones <- c(10, 12, 4, 16, 8)
etiquetas <- c("Uno", "Dos", "Tres", "Cuatro", "Cinco")

# Crear el diagrama de torta
pie(proporciones, labels = etiquetas, main = "Diagrama de Torta Básico")
    

Este código generará un diagrama de torta simple con etiquetas directamente en las rebanadas. Sin embargo, a menudo es más claro tener una leyenda separada, especialmente si las etiquetas son largas o hay muchas rebanadas.


Añadiendo una Leyenda con legend()

La función legend() es tu herramienta clave

Para añadir una leyenda a tu diagrama de torta, debes llamar a la función legend() después de haber creado el gráfico con pie(). Los argumentos principales que necesitarás para un diagrama de torta son:

  • x e y o una palabra clave de posición: Define la ubicación de la leyenda.
  • legend: Un vector de caracteres con el texto que aparecerá en la leyenda para cada rebanada.
  • fill: Un vector de colores que coincida con los colores utilizados en las rebanadas del diagrama de torta.
  • cex: Controla el tamaño del texto en la leyenda.

Ejemplo de adición de leyenda


# Crear un vector de datos
proporciones <- c(10, 12, 4, 16, 8)
etiquetas <- c("Uno", "Dos", "Tres", "Cuatro", "Cinco")
colores <- rainbow(length(proporciones)) # Usamos rainbow para generar colores

# Crear el diagrama de torta
pie(proporciones, labels = etiquetas, main = "Diagrama de Torta con Leyenda", col = colores)

# Añadir la leyenda
legend("topright", legend = etiquetas, fill = colores, cex = 0.8)
    

En este ejemplo, hemos generado colores automáticamente usando la función rainbow() para que cada rebanada tenga un color distinto. Luego, usamos estos mismos colores en el argumento fill de la función legend() para asegurar que los colores en la leyenda coincidan con los del diagrama. La leyenda se colocará en la esquina superior derecha ("topright") y el tamaño del texto se ajustará con cex = 0.8.

Aquí tienes una visualización que ilustra un diagrama de torta con leyenda:

Diagrama de Torta con Leyenda en R

Esta imagen muestra claramente cómo la leyenda asocia cada color con una categoría específica, haciendo que el gráfico sea mucho más fácil de interpretar.

Ubicación de la leyenda

Puedes experimentar con diferentes palabras clave para cambiar la posición de la leyenda:

  • "bottomright"
  • "bottom"
  • "bottomleft"
  • "left"
  • "topleft"
  • "top"
  • "topright"
  • "right"
  • "center"

Alternativamente, puedes especificar las coordenadas x e y exactas donde deseas colocar la esquina superior izquierda de la leyenda. Los valores de las coordenadas suelen estar entre -1 y 1 en el contexto de un diagrama de torta creado con pie().


# Añadir la leyenda usando coordenadas
legend(1, 1, legend = etiquetas, fill = colores, cex = 0.8) # Ejemplo con coordenadas
    

Personalización Avanzada de la Leyenda

La función legend() ofrece una amplia gama de argumentos para personalizar aún más la apariencia de tu leyenda. Algunos de los más útiles incluyen:

  • title: Añade un título a la leyenda.
  • ncol: Especifica el número de columnas para organizar los elementos de la leyenda.
  • bty: Controla el tipo de caja alrededor de la leyenda (por ejemplo, "o" para una caja completa, "n" para ninguna caja).
  • bg: Define el color de fondo de la caja de la leyenda.
  • horiz: Si es TRUE, la leyenda se organiza horizontalmente.

Ejemplo de personalización


# Crear un vector de datos
proporciones <- c(10, 12, 4, 16, 8)
etiquetas <- c("Categoría A", "Categoría B", "Categoría C", "Categoría D", "Categoría E")
colores <- cm.colors(length(proporciones)) # Otro esquema de colores

# Crear el diagrama de torta
pie(proporciones, labels = etiquetas, main = "Diagrama de Torta Personalizado", col = colores)

# Añadir la leyenda con título y dos columnas
legend("right", legend = etiquetas, fill = colores, cex = 0.7, title = "Categorías", ncol = 1, bty = "o", bg = "lightblue")
    

Este ejemplo añade un título a la leyenda, la organiza en una sola columna y le da un fondo azul claro con una caja completa. La personalización te permite hacer que tu leyenda sea más informativa y estéticamente agradable.


Consideraciones Importantes

Consejos para una leyenda efectiva

Al añadir leyendas a tus diagramas de torta en R, ten en cuenta los siguientes puntos para asegurar que tu visualización sea clara y fácil de entender:

  • Coherencia de colores: Asegúrate de que los colores utilizados en la leyenda coincidan exactamente con los colores de las rebanadas del diagrama de torta.
  • Claridad de las etiquetas: Las etiquetas de la leyenda deben ser concisas y descriptivas para que el lector pueda identificar fácilmente a qué categoría corresponde cada rebanada.
  • Ubicación: Elige una posición para la leyenda que no obstruya el diagrama de torta y que sea fácil de leer. Si la leyenda es muy larga, considera colocarla fuera del área de trazado o utilizar múltiples columnas.
  • Evitar el abarrotamiento: Si tienes demasiadas categorías, un diagrama de torta puede volverse difícil de leer incluso con una leyenda. En tales casos, otros tipos de gráficos, como los diagramas de barras, podrían ser más apropiados. Algunos expertos en visualización de datos incluso desaconsejan el uso de diagramas de torta en general, sugiriendo que los diagramas de barras permiten una comparación más precisa de las proporciones. Sin embargo, los diagramas de torta siguen siendo populares por su simplicidad visual para mostrar partes de un todo.
  • Porcentajes y Valores: Puedes añadir porcentajes o valores numéricos tanto en las etiquetas de las rebanadas como en la leyenda para proporcionar información adicional. Esto requiere calcular los porcentajes previamente y luego incluirlos en las cadenas de texto de las etiquetas.

Añadir porcentajes a las etiquetas de la leyenda o del gráfico puede hacerse calculando el porcentaje de cada valor respecto al total y luego concatenando esta información con las etiquetas de texto.


# Calcular porcentajes
porcentajes <- round(proporciones / sum(proporciones) * 100)
etiquetas_con_pct <- paste(etiquetas, " (", porcentajes, "%)", sep="")

# Crear el diagrama de torta con etiquetas de porcentaje
pie(proporciones, labels = etiquetas_con_pct, main = "Diagrama de Torta con Porcentajes")

# Añadir la leyenda con etiquetas de porcentaje
legend("topright", legend = etiquetas_con_pct, fill = colores, cex = 0.8)
    

Esta técnica te permite mostrar tanto el nombre de la categoría como su porcentaje en la leyenda, ofreciendo una información más completa al lector.

Ejemplo de tabla para organizar datos y leyendas

Para ilustrar la relación entre los datos, las rebanadas del gráfico y la leyenda, podemos conceptualizarlo en una tabla simple:

Categoría Valor Proporción del Total (%) Color Asignado Etiqueta de Leyenda
Uno 10 20% Color 1 Uno (20%)
Dos 12 24% Color 2 Dos (24%)
Tres 4 8% Color 3 Tres (8%)
Cuatro 16 32% Color 4 Cuatro (32%)
Cinco 8 16% Cinco Cinco (16%)

Esta tabla muestra cómo cada categoría contribuye al total, cómo se le asigna un color y cómo esta información se refleja en la etiqueta de la leyenda y potencialmente en la etiqueta de la rebanada.


Alternativas con ggplot2

Si bien la función pie() es útil para diagramas de torta básicos, el paquete ggplot2 ofrece una flexibilidad mucho mayor para crear gráficos más complejos y personalizables, incluyendo diagramas de torta con leyendas integradas de manera más automática. En ggplot2, los diagramas de torta se crean combinando un gráfico de barras (geom_bar() o geom_col()) con una transformación de coordenadas polares (coord_polar()). ggplot2 maneja la leyenda automáticamente a partir de los datos mapeados a estéticas como el color o el relleno.


# Instalar y cargar ggplot2 si no lo tienes
# install.packages("ggplot2")
library(ggplot2)

# Crear un dataframe para ggplot2
datos_df <- data.frame(
  categoria = etiquetas,
  valor = proporciones
)

# Crear el diagrama de torta con ggplot2
ggplot(datos_df, aes(x = "", y = valor, fill = categoria)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  labs(title = "Diagrama de Torta con ggplot2") +
  theme_void() # Elimina ejes y fondo
    

En este código de ggplot2, la leyenda se genera automáticamente a partir del mapeo de la variable categoria al argumento fill dentro de aes(). Puedes personalizar la leyenda de ggplot2 utilizando funciones como scale_fill_manual() para controlar los colores y theme() para ajustar su posición y apariencia.

Este video ofrece una introducción a la creación de diagramas de sectores (gráficos circulares) en R, utilizando la función base, lo cual es relevante para entender el contexto de añadir leyendas con la función legend().

El video demuestra los pasos iniciales para generar el gráfico en sí, que es el punto de partida antes de proceder a añadir la leyenda como se describe en las secciones anteriores. Comprender la estructura básica del diagrama de torta en R es esencial para luego poder manipular sus componentes, como la leyenda.


Preguntas Frecuentes

¿Puedo tener múltiples leyendas en un mismo gráfico?

Sí, es posible añadir múltiples leyendas a un gráfico en R llamando a la función legend() varias veces con diferentes argumentos de posición y contenido. Esto puede ser útil si necesitas mostrar diferentes tipos de información en leyendas separadas.

¿Cómo puedo quitar la leyenda de un diagrama de torta?

Si utilizas la función pie() y añades la leyenda con legend(), simplemente no llames a la función legend() para omitirla. Si estás utilizando ggplot2, puedes eliminar la leyenda utilizando argumentos dentro de la función theme(), como por ejemplo theme(legend.position = "none").

¿La función legend() solo funciona con diagramas de torta?

No, la función legend() es una función genérica en los gráficos base de R y se utiliza para añadir leyendas a una amplia variedad de gráficos, incluyendo diagramas de barras, gráficos de líneas, diagramas de dispersión, etc. Los argumentos que utilizas con legend() pueden variar ligeramente dependiendo del tipo de gráfico (por ejemplo, se usa fill para barras y rebanadas de torta, y lty, lwd, col para líneas).

¿Es posible poner la leyenda fuera del área del gráfico?

Sí, es posible colocar la leyenda fuera del área de trazado del gráfico. Esto a menudo requiere ajustar los márgenes del gráfico utilizando la función par() (específicamente el argumento mar) antes de crear el gráfico, y luego especificar la posición de la leyenda fuera del área de trazado utilizando coordenadas apropiadas o el argumento xpd = TRUE en la función legend().


Referencias

juniorjb5.github.io
Data Visualization in R
icassol.github.io
Gráficos

Last updated April 20, 2025

AI-assisted research. Sources, methodology and corrections · Source-checked guides and tools · Explore published answers

Ask Ithy AI