• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
      • Ajuste de Curvas
      • Calculadora de Matrices
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Introducción a las gráficas de tarta en Matplotlib

Matplotlib

septiembre 30, 2024 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 5 minutos

Junto a las gráficas de barras, una de las mejores opciones para visualizar datos categóricos son las gráficas de tarta. Mediante las cuales se puede mostrar el peso que tienen cada una de las categorías en el total de los datos. En esta entrada se explicarán las bases para la creación de gráficas de tarta en Matplotlib y algunas de las opciones más interesantes.

Tabla de contenidos

  • 1. Creación de una gráfica de tarta básica con Matplotlib
  • 2. Añadir valores y porcentajes a la gráfica
  • 3. Cambiar los colores de las porciones
  • 4. Añadir un efecto de explosión
  • 5. Convertir la gráfica de tarta en una de tipo donut
  • 6. Agregar una Leyenda
  • 7. Conclusiones

Creación de una gráfica de tarta básica con Matplotlib

Para crear una gráfica de tarta es necesario contar con un conjunto de datos categóricos, por ejemplo, las ventas en función a alguna categoría. Con los datos solamente se debe importar Pyplot de Matplotlib y pasar los datos a la función plt.pie():

import matplotlib.pyplot as plt

# Datos para la gráfica
labels = ['Ventas A', 'Ventas B', 'Ventas C', 'Ventas D']
sizes = [25, 40, 20, 20]

# Crear gráfica de tarta básica
plt.pie(sizes, labels=labels)
plt.title("Gráfica de Tarta Básica")
plt.show()
Gráfica de tarta básica creada con Matplotlib
Gráfica de tarta básica

Este código genera una gráfica de tarta básica con las etiquetas correspondientes. Para lo que se le han pasado dos parámetros a la función:

  • sizes: una lista o array que contiene los tamaños de cada porción en la tarta. Los valores son proporcionales entre sí, por lo que no es necesario normalizarlos para usarlos (no tiene que sumar 100 ni ninguna cantidad específica, la función se encarga de calcular las proporciones).
  • labels: parámetro opcional con el que se indica los nombres de cada categoría. Las etiquetas aparecerán alrededor de las porciones para identificarlas. Si el parámetro no se indica no se mostrará ninguna etiqueta en la gráfica.

Añadir valores y porcentajes a la gráfica

La gráfica da una información visual de las relaciones entre las diferentes categorías. Pero, en algunos casos, puede ser necesario incluir los valores numéricos exactos. Para esto se puede usar la propiedad autopct para calcular y mostrar los porcentajes en de cada una de las categorías. Esto es lo que se hace en el siguiente ejemplo:

Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT
En Analytics Lane
Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("Gráfica de Tarta con Porcentajes")
plt.show()
Gráfica de tarta con los porcentajes creada con Matplotlib
Porcentajes incluidos en la gráfica de tarta

El parámetro autopct permite agregar los porcentajes, y el formato '%1.1f%%' muestra los valores con un decimal.

Si lo que se desea es mostrar los datos en lugar del porcentaje es necesario pasar una función lambda al parámetro autopct en lugar del formato. Esto permite escribir cualquier valor en la gráfica. Por ejemplo, en la siguiente gráfica se puede ver como mostrar el valor de la categoría con el símbolo del Euro.

# Función personalizada para mostrar valores
def func(valor):
    return f'{valor:.0f}'  # Valor sin decimales

# Crear gráfica de tarta mostrando los valores
plt.pie(sizes, labels=labels, autopct=lambda p: func(p * sum(sizes) / 100))
plt.title("Gráfica de Tarta con Valores Numéricos")
plt.show()
Gráfica de tarta con los valores creada con Matplotlib
Valores incluidos en la gráfica de tarta

La función personalizada func(valor) convierte en texto el valor numérico, debido a que pie() pasa como valor el porcentaje es necesario recuperar el dato original. Para lo que se suma los valores y se multiplican por el valor dividido por 100.

Publicidad


Cambiar los colores de las porciones

Matplotlib permite personalizar los colores usando el parámetro colors al que se le debe especificar una lista de colores para las porciones:

colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title("Gráfica de Tarta con Colores Personalizados")
plt.show()
Gráfica de tarta con los colores personalizados creada con Matplotlib
Colores personalizados

Esta opción permite obtener un control total sobre el aspecto visual de la gráfica. Pudiendo adaptar este a las necesidades específicas de cada proyecto.

Añadir un efecto de explosión

Para resaltar una porción en particular, se puede recurrir al parámetro explode para “separar” una sección del resto:

explode = (0.1, 0, 0, 0)  # Solo explotar la primera porción

plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title("Gráfica de Tarta con Efecto de Explosión")
plt.show()
Gráfica de tarta con efecto explosión en la categoría "Ventas A"
Separar una categoría con el efecto explosión

El parámetro explode es una tupla que define cuánto se separa cada porción. Cada valor de la tupla corresponde a una porción. En este caso, el valor 0.1 explota solo la primera porción (10% de distancia hacia fuera), mientras que las otras se mantienen sin explotar (0).

Convertir la gráfica de tarta en una de tipo donut

Una gráfica de donut (o anillos) es simplemente una gráfica de tarta con un agujero en el centro. Algo que se puede lograr ajustando el parámetro wedgeprops:

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', wedgeprops={'width': 0.3})
plt.title("Gráfica de Donut")
plt.show()
Gráfica de tipo donut creada con Matplotlib
Gráfica de tipo donut

El parámetro wedgeprops recibe un diccionario con propiedades mediante las cuales se modifica el estilo de las porciones. En este caso, el valor {‘width': 0.3} reduce el ancho de cada porción a un 30% del total, creando el efecto de un donut o anillo al dejar un agujero en el centro.

Publicidad


Agregar una Leyenda

Finalmente, una gráfica de tarta puede beneficiarse de una leyenda que explique el valor de las porciones:

plt.pie(sizes, colors=colors)
plt.legend(labels, title="Categorías")
plt.title("Gráfica de Tarta con Leyenda")
plt.show()
Inclusión de una leyenda en la gráfica de tarta con las categorías y eliminación en la gráfica.
Las categorías se muestren en la leyenda en lugar de la gráfica

En este caso se ha agregado la leyenda y eliminado las etiquetas para evitar redundancia.

Conclusiones

Las gráficas de tarta son una herramienta visual con la que se puede mostrar el peso de varias categorías en un conjunto de datos. Por lo que es uno de los gráficos básicos de Matplotlib. En esta entrada se ha visto cómo crear una gráfica de tarta básica, agregarle valores, configurar los colores, añadir un efecto explosión, convertida en una de tipo donut o anillo y agregar una leyenda.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT
  • El bestiario de los indicadores económicos absurdos: El zoo patrio
  • Las fórmulas con DNI, o cómo dividir cualquier cosa entre cualquier otra cosa puede acabar publicado en un titular serio – El bestiario de los indicadores económicos absurdos (parte 5)
  • Data Leakage en Credit Scoring: El Error que Invalida tu Modelo
  • La liga internacional, o cuando Harvard y Johns Hopkins suman peras con manzanas – El bestiario de los indicadores económicos absurdos (parte 6)
  • Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)
  • Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • Customer Lifetime Value: la fórmula clásica que todo analista debería dominar
  • PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Publicado en: Python Etiquetado como: Matplotlib

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

julio 23, 2026 Por Daniel Rodríguez

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

julio 21, 2026 Por Daniel Rodríguez

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

julio 16, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • pandas Pandas: Cómo crear un DataFrame vacío y agregar datos publicado el noviembre 16, 2020 | en Python
  • Figura en la que se combinan las ventas por departamento el detalle de uno de ellos usando graficas de tarta. Crear dos gráficos de tarta para ofrecer información detallada de subcategorías en Python publicado el octubre 28, 2024 | en Python
  • La tabla de la web finalmente importada en Excel Importar tablas desde la web en Excel publicado el octubre 21, 2020 | en Herramientas
  • Justicio: La herramienta gratuita de IA para consultas legales publicado el diciembre 10, 2024 | en Reseñas
  • Evaluar similitudes entre señales: Cómo calcular la correlación cruzada con np.correlate() en NumPy publicado el enero 24, 2025 | en Ciencia de datos, Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • Daniel Rodríguez en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • Juan en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no
  • bif en Cómo desinstalar Oracle Database 19c en Windows
  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto