Vamos a proceder a abrir el archivo y revisar los datos para poder crear los gráficos necesarios. Vamos a ver qué tipo de datos tenemos para poder determinar los gráficos más adecuados.
Primero, cargaré el archivo y echaré un vistazo a su contenido.
import pandas as pd
# Load the Excel file
file_path = '/mnt/data/1000-Registros-de-ventas.xlsx'
data = pd.read_excel(file_path)
# Display the first few rows of the dataframe to understand its structure
data.head()
Resultado
ID Cliente Zona País Tipo de producto \
0 C2421 Europa United Kingdom Snacks
1 C1908 Europa Malta Cárnicos
2 C7652 Australia y Oceanía Marshall Islands Cereales
3 C2326 África Iran Frutas
4 C5305 Centroamérica y Caribe Guatemala Alimento infantil
Canal de venta Prioridad Fecha pedido ID Pedido Fecha envío Unidades \
0 Offline Crítica 2020-10-12 242113196 2020-11-30 5530
1 Online Alta 2020-01-26 190800607 2020-01-28 994
2 Online Crítica 2020-11-09 765228068 2020-11-21 6845
3 Offline Baja 2021-08-21 232631909 2021-10-02 9806
4 Offline Media 2022-09-30 530560958 2022-11-12 3633
Precio Unitario Coste unitario Importe venta total Importe Coste total
0 152.58 97.44 843767.40 538843.20
1 421.89 364.69 419358.66 362501.86
2 205.70 117.11 1408016.50 801617.95
3 9.33 6.92 91489.98 67857.52
4 255.28 159.42 927432.24 579172.86
Tenemos un dataset de ventas con varias columnas como zona, país, tipo de producto, canal de venta, prioridad, fecha de pedido, unidades, precio unitario, coste unitario, importe de venta total, entre otros.
Con base en estos datos, puedo sugerir los siguientes gráficos:
Ventas Totales por Zona: Gráfico de barras mostrando las ventas totales en cada zona.
Distribución de Tipos de Producto Vendidos: Gráfico de pastel mostrando la proporción de cada tipo de producto vendido.
Ingresos por Canal de Venta: Gráfico de barras comparando los ingresos generados por cada canal de venta (Online vs Offline).
Unidades Vendidas por País: Gráfico de barras de las unidades totales vendidas en cada país.
Prioridad de Pedidos y su Impacto en Ingresos: Gráfico de barras mostrando los ingresos totales agrupados por la prioridad del pedido.
Vamos a crear estos gráficos uno por uno.
1. Ventas Totales por Zona
Primero, agruparemos los datos por zona y calcularemos las ventas totales.
2. Distribución de Tipos de Producto Vendidos
Para esto, haremos un gráfico de pastel.
3. Ingresos por Canal de Venta
Compararemos los ingresos por los diferentes canales de venta.
4. Unidades Vendidas por País
Agruparemos los datos por país y sumaremos las unidades vendidas.
5. Prioridad de Pedidos y su Impacto en Ingresos
Agruparemos los datos por prioridad de pedido y sumaremos los ingresos.
Vamos a proceder con la generación de los gráficos.
1. Ventas Totales por Zona
import matplotlib.pyplot as plt
# Ventas totales por zona
ventas_por_zona = data.groupby('Zona')['Importe venta total'].sum()
# Gráfico de barras
plt.figure(figsize=(10, 6))
ventas_por_zona.plot(kind='bar', color='skyblue')
plt.title('Ventas Totales por Zona')
plt.xlabel('Zona')
plt.ylabel('Ventas Totales')
plt.xticks(rotation=45)
plt.grid(axis='y')
# Guardar la imagen
plt.savefig('/mnt/data/ventas_totales_por_zona.png')
# Mostrar el gráfico
plt.show()

Aquí tienes el gráfico de Ventas Totales por Zona. Vamos a continuar con el siguiente gráfico.
2. Distribución de Tipos de Producto Vendidos
# Distribución de tipos de producto vendidos
productos_vendidos = data['Tipo de producto'].value_counts()
# Gráfico de pastel
plt.figure(figsize=(8, 8))
productos_vendidos.plot(kind='pie', autopct='%1.1f%%', startangle=140, colors=plt.cm.Paired.colors)
plt.title('Distribución de Tipos de Producto Vendidos')
plt.ylabel('')
# Guardar la imagen
plt.savefig('/mnt/data/distribucion_tipos_producto_vendidos.png')
# Mostrar el gráfico
plt.show()