Crear un gráfico Bar of Pie

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este tutorial, aprenderá a crear un gráfico "Bar of Pie" utilizando la biblioteca Matplotlib de Python. Un gráfico Bar of Pie es una combinación de un gráfico de pastel y un gráfico de barras apiladas, donde la primera porción del pastel se expande en un gráfico de barras con una desglose adicional de sus características. Este gráfico es útil cuando desea mostrar la distribución de un conjunto de datos completo, mientras también destaca categorías específicas.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Notebook y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

Antes de comenzar a crear el gráfico, necesitamos importar las bibliotecas necesarias. En este caso, usaremos matplotlib.pyplot y numpy.

import matplotlib.pyplot as plt
import numpy as np

Definir los datos para el gráfico

A continuación, necesitamos definir los datos que usaremos para crear el gráfico. En este caso, usaremos los siguientes datos:

## parámetros del gráfico de pastel
overall_ratios = [.27,.56,.17]
labels = ['Aprobar', 'Desaprobar', 'Sin Decidir']
explode = [0.1, 0, 0]

## parámetros del gráfico de barras
age_ratios = [.33,.54,.07,.06]
age_labels = ['Menos de 35 años', '35-49 años', '50-65 años', 'Más de 65 años']

Crear el gráfico de pastel

Ahora podemos crear el gráfico de pastel. Comenzamos definiendo los objetos de figura y eje:

## crear figura y asignar objetos de eje
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 5))
fig.subplots_adjust(wspace=0)

Luego establecemos los parámetros para el gráfico de pastel y lo trazamos:

## rotar para que la primera porción se divida por el eje x
ángulo = -180 * overall_ratios[0]
wedges, *_ = ax1.pie(overall_ratios, autopct='%1.1f%%', startangle=ángulo,
                     labels=labels, explode=explode)

Crear el gráfico de barras

A continuación, creamos el gráfico de barras apiladas. Comenzamos definiendo los parámetros del gráfico:

## parámetros del gráfico de barras
bottom = 1
width =.2

## Agregar desde la parte superior coincide con la leyenda.
for j, (height, label) in enumerate(reversed([*zip(age_ratios, age_labels)])):
    bottom -= height
    bc = ax2.bar(0, height, width, bottom=bottom, color='C0', label=label,
                 alpha=0.1 + 0.25 * j)
    ax2.bar_label(bc, labels=[f"{height:.0%}"], label_type='center')

Conectar el gráfico de pastel y el gráfico de barras

Finalmente, conectamos el gráfico de pastel y el gráfico de barras usando ConnectionPatch:

## usar ConnectionPatch para dibujar líneas entre las dos gráficas
theta1, theta2 = wedges[0].theta1, wedges[0].theta2
center, r = wedges[0].center, wedges[0].r
bar_height = sum(age_ratios)

## dibujar la línea de conexión superior
x = r * np.cos(np.pi / 180 * theta2) + center[0]
y = r * np.sin(np.pi / 180 * theta2) + center[1]
con = ConnectionPatch(xyA=(-width / 2, bar_height), coordsA=ax2.transData,
                      xyB=(x, y), coordsB=ax1.transData)
con.set_color([0, 0, 0])
con.set_linewidth(4)
ax2.add_artist(con)

## dibujar la línea de conexión inferior
x = r * np.cos(np.pi / 180 * theta1) + center[0]
y = r * np.sin(np.pi / 180 * theta1) + center[1]
con = ConnectionPatch(xyA=(-width / 2, 0), coordsA=ax2.transData,
                      xyB=(x, y), coordsB=ax1.transData)
con.set_color([0, 0, 0])
ax2.add_artist(con)
con.set_linewidth(4)

Mostrar el gráfico

Finalmente, mostramos el gráfico:

plt.show()

Resumen

En este tutorial, aprendiste cómo crear un gráfico "Bar of Pie" utilizando la biblioteca Matplotlib de Python. Un gráfico Bar of Pie es útil cuando quieres mostrar la distribución de un conjunto de datos completo, mientras que también resalta categorías específicas. También aprendiste cómo usar ConnectionPatch para conectar el gráfico de pastel y el gráfico de barras.