En la visualización de datos, los gráficos de pastel son una herramienta eficaz para representar proporciones dentro de un conjunto de datos.
Una característica importante de estos gráficos es la capacidad de personalizar cómo se muestran los porcentajes de cada segmento. A continuación, exploraremos las diferentes formas de formatear los porcentajes en un gráfico de pastel utilizando el parámetro autopct de la función plt.pie() en matplotlib.
Veremos cómo utilizar cadenas de formato para ajustar la precisión decimal y añadir texto personalizado, así como implementar funciones para un control más detallado sobre la presentación de los datos.
1. Cadenas de Formato (autopct):
'%1.1f%%': Muestra el porcentaje con un decimal y el símbolo %. Ejemplo: 35.7%.
'%1.0f%%': Muestra el porcentaje como un número entero sin decimales. Ejemplo: 36%.
'%1.2f%%': Muestra el porcentaje con dos decimales. Ejemplo: 35.68%.
'%2.0f%%': Similar a '%1.0f%%', pero reserva más espacio (dos dígitos enteros). Ejemplo: 35% se vería como 35%, pero 5% se vería como 5%.
'%1.1f': Muestra el porcentaje con un decimal, pero sin el símbolo %. Ejemplo: 35.7.
'%1.1f units': Personaliza el texto. En este caso, mostraría el porcentaje seguido de la palabra "units". Ejemplo: 35.7 units.
2. Funciones (autopct):
En lugar de una cadena de formato, puedes pasar una función personalizada a autopct que reciba el valor del porcentaje y devuelva una cadena de texto formateada:
Esta función mostraría tanto el porcentaje con dos decimales como el valor absoluto correspondiente en unidades.
Ejemplo de Uso:
Mostrar porcentajes con un decimal y símbolo %: autopct='%1.1f%%'
Mostrar porcentajes como números enteros: autopct='%1.0f%%'
Mostrar porcentaje y añadir texto personalizado: autopct='%1.1f unidades vendidas'
Mostrar porcentajes con formato personalizado mediante una función: autopct=custom_autopct
Estos valores permiten personalizar cómo se presentan los datos en tu gráfico de pastel, adaptándolo a tus necesidades específicas.
Personalizar la presentación de los porcentajes en un gráfico de pastel no solo mejora la estética del gráfico, sino que también puede hacer que la información sea más comprensible para el público.
Con estas herramientas, puedes crear gráficos que no solo sean informativos, sino también visualmente atractivos.
Un barplot en un eje polar es una variante de un gráfico de barras que se adapta a un sistema de coordenadas polares en lugar de uno cartesiano.
Esto es útil cuando quieres visualizar datos que tienen una relación cíclica o angular, como en el caso de datos relacionados con horas del día, direcciones, o estaciones del año.
Comparto el código, con una advertencia, se utiliza subplots para la proyección polar:
# Datos para el ejercicionp.random.seed(19680801)# Cálculo de las barras polares de ángulo thetaN =20theta = np.linspace(0.0,2* np.pi, N, endpoint=False)radii =10* np.random.rand(N)width = np.pi /4* np.random.rand(N)colors = plt.cm.viridis(radii /10.)# Gráfico de barras en eje polorax = plt.subplot(projection='polar')ax.bar(theta, radii, width=width, bottom=0.0, color=colors, alpha=0.5)plt.show()
Espero les haya servido. ¡Nunca paren de aprender! 🚀🚀
Super!
📝 Mis apuntes de esta clase
Gráfico de barras:
Compara cantidades entre diferentes categorías.
Se utiliza en datos discretos.
Ejemplo: Comparar la venta de diferentes productos en un mes.
Aplicación: Es útil para ver qué producto tiene más ventas y como es su desempeño con otros.
import numpy as np
import matplotlib.pyplot as plt
# Datosproducts =["Producto A","Producto B","Producto C"]sales = np.random.randint(20,150,3)# Creación del gráfico de barrasplt.figure(figsize=(10,8))plt.bar( x=products, height=sales, label="Ventas mensuales", color="skyblue")plt.title("Ventas de productos en un mes")plt.xlabel("Productos")plt.ylabel("Ventas")plt.legend()# Anotación para anotar un punto ezpecifico:# El producto con mas ventas.max_sales = sales.max()max_sales_idx = np.where(sales == max_sales)[0][0]max_prod = products[max_sales_idx]plt.annotate("Máximo de ventas", xy=(max_prod, max_sales), arrowprops=dict(facecolor="red", shrink=0.05))plt.show()
Resultado:
Gráfico de pastel (pie):
Muestra la proporción de las diferentes categorías en relación a un total.
Divide un todo en partes (categorías).
⚠️ Utilizar solo cuando:
Hay una diferencia clara en las proporciones.
Son pocas categorías.
Ejemplo: Participación de diferentes productos en el mercado.
import numpy as np
import matplotlib.pyplot as plt
# Datosproducts =["Producto A","Producto B","Producto C"]market_share = np.random.randint(20,150,3)plt.figure(figsize=(10,8))plt.pie( x=market_share, labels=products, autopct="%1.2f%%", startangle=140, colors=["gold","lightcoral","orange"])plt.title("Participación de mercado por producto")plt.axis("equal");
📌La notación ; (punto y coma) en la última línea es el equivalente a ejecutar la función plt.show()
Resultado:
📌Ambos gráficos permiten representar datos categóricos de forma visual y más comprensible.
Espero este aporte les sea de utilidad 💜
Los colores se pueden personalizar con códigos hexadecimales como en este ejemplo:
import matplotlib.pyplot as plt
plt.figure(figsize=(8,6))
categories = ['Producto A', 'Producto B', 'Producto C']sales = [120,150,90]
#Creación del gráfico de barras verticalesplt.bar(categories, sales, color='#7d08d7', label='Ventas mensuales')
#Anotación con flecha para destacar un punto específicoplt.annotate('Máximo de ventas', xy=('Producto B', 150),xytext=('Producto C', 160), arrowprops= dict(facecolor = 'black', shrink= 0.05))
plt.title('Ventas de productos en un mes')plt.xlabel('Productos')plt.ylabel('Ventas')
#plt.legend()
plt.show()
Jugando un pco se puede hacer muchas cosas
Código para este gráfico:
import matplotlib.pyplot as plt
# Datoslabels =['Math','Science','History','Art','Physical Education']sizes =[33.3,26.7,20.0,13.3,6.7]colors =['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0']explode =(0.1,0,0,0,0)# Destacar el primer segmento (Math)# Crear figuraplt.figure(figsize=(6,6))# Título separado del gráfico & ajuste de posición del gráfico para bajarlo un pocoplt.title('Weekly Study Time Distribution by Subject', pad=30)plt.subplots_adjust(top=0.85)# Crear gráfico de pastelplt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140, explode=explode, shadow=True)# Asegurar que sea un círculoplt.axis('equal')# Mostrar gráficoplt.show()
import matplotlib.pyplot as plt
plt.figure(figsize=(10,8))# Datos de ejemplo: Participación del producto en el mercadoproducts =['Producto A','Producto B','Producto C']market_share =[50,35,150]# Crear el gráfico de pastelplt.pie( market_share, labels=products, autopct='%1.1f%%', startangle=90, colors=['green','blue','red'], explode=(0,0,0.1),# Destacar Producto C shadow=True# Agrega sombra para resaltar más)# Título con espacio adicionalplt.title('Participación en el mercado por producto', pad=15)# Mostrar el gráficoplt.axis('equal')# Asegura que sea un círculo perfectoplt.show()
plt.annotate('Maximo de ventas', xy=(11, 700000), xytext=(12, 50000),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.title('Ventas de productos en un mes')
plt.xlabel('Productos')
plt.ylabel('Ventas')
plt.show()
ESTARIA GENIAL UNA CLASE DE MANEJO DE GRAFICO CON MPLOT LIB A TRAVEZ DE PROMPT ENGENIERING
pastelito! genial
En Python, los diferentes caracteres de agrupación tienen significados específicos:
Paréntesis (): Se utilizan para definir funciones, agrupar expresiones y controlar el orden de evaluación. También son necesarios en llamadas a funciones.
Corchetes []: Se usan para definir listas. También permiten acceder a los elementos de las listas y otros tipos de datos indexables, como strings o diccionarios.
Llaves {}: Se utilizan para definir diccionarios y conjuntos. En un diccionario, representan pares clave-valor, mientras que en un conjunto, representan una colección de elementos únicos.
Cada uno de estos caracteres tiene su propio contexto de uso en el manejo de estructuras de datos y funciones en Python.
Mis gráficos, de acuerdo con las estadísticas de páginas oficiales :
¿PARA QUÉ SIRVEN LOS GRÁFICOS DE BARRAS Y DIAGRAMAS DE PASTEL?
En Python, los gráficos de barras y los diagramas de pastel son herramientas útiles para visualizar datos categóricos y proporciones.
Gráficos de Barras
Uso: Comparar valores entre diferentes categorías.
Ejemplo: Comparar ventas de productos.
Diagramas de Pastel
Uso: Mostrar proporciones o porcentajes de un total.
Ejemplo: Distribución del presupuesto entre departamentos.
Les presento mi ejemplo practico
### Gráficos de Barras y Diagramas de Pastel en Matplotlib
**Matplotlib** es una biblioteca muy flexible que permite crear gráficos de barras y diagramas de pastel con múltiples opciones de personalización.
---
### **Gráfico de Barras**
El gráfico de barras se utiliza para comparar categorías en términos de una variable cuantitativa.
#### Ejemplo básico de un gráfico de barras:
import matplotlib.pyplot as plt
\# Datos
categorias = \['A','B','C','D']valores = \[3,7,5,6]
\# Crear gráfico de barras
plt.bar(categorias, valores)
\# Personalización
plt.title('Gráfico de Barras')plt.xlabel('Categorías')plt.ylabel('Valores')plt.show()
#### Gráfico de barras horizontales:
plt.barh(categorias, valores)plt.title('Gráfico de Barras Horizontal')plt.xlabel('Valores')plt.ylabel('Categorías')plt.show()
#### Gráfico de barras apiladas:
Para crear gráficos de barras apiladas, usamos la misma posición en el eje x y acumulamos los valores en el eje y.
#### Personalización de colores y anchura de barras:
plt.bar(categorias, valores, color='skyblue', width=0.6)plt.title('Gráfico de Barras Personalizado')plt.show()
---
### **Diagrama de Pastel**
Los diagramas de pastel se utilizan para mostrar proporciones en una distribución de categorías.
#### Ejemplo básico de un diagrama de pastel:
\# Datos
categorias = \['A','B','C','D']valores = \[15,30,45,10]
\# Crear gráfico de pastel
plt.pie(valores, labels=categorias)
\# Personalización
plt.title('Diagrama de Pastel')plt.show()
#### Añadir porcentaje y destacar una sección:
\# Exploding: resaltar una categoría
explode =(0.1,0,0,0)# Resalta el primer segmento (A)
\# Crear gráfico de pastel con porcentajes
plt.pie(valores, labels=categorias, autopct='%1.1f%%', explode=explode, startangle=90)
\# Asegurar que el gráfico sea circular
plt.axis('equal')plt.title('Diagrama de Pastel con Porcentajes')plt.show()