Imagen destacada del tutorial: Gráficos Básicos con Matplotlib: Tipos de Gráficos Esenciales
Matplotlib

Gráficos Básicos con Matplotlib: Tipos de Gráficos Esenciales

José Elías Romero Guanipa
01 Sep 2025

Aprende a crear los tipos de gráficos más comunes con Matplotlib: líneas, dispersión, barras, áreas y más con ejemplos prácticos.

matplotlib python visualizacion graficos lineas +2 más

¡Domina los tipos de gráficos más utilizados en Matplotlib! En este tutorial aprenderás a crear gráficos de líneas, dispersión, barras, áreas y otros tipos básicos que son fundamentales para la visualización de datos.

Objetivo: Aprender a crear y personalizar los tipos de gráficos más comunes en Matplotlib con ejemplos prácticos y casos de uso reales.

Índice

Gráficos de Líneas

Domina la creación de gráficos de líneas para visualizar tendencias temporales, funciones matemáticas y relaciones continuas entre variables. Esta sección cubre desde gráficos básicos hasta personalizaciones avanzadas con múltiples líneas, estilos y configuraciones profesionales.

Los gráficos de líneas son ideales para mostrar tendencias a lo largo del tiempo o relaciones continuas entre variables.

Gráfico de Línea Básico

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Importar las bibliotecas necesarias
# matplotlib.pyplot para crear gráficos
# numpy para trabajar con arrays numéricos

# Paso 2: Crear los datos
# Generar 100 puntos equidistantes entre 0 y 10
x = np.linspace(0, 10, 100)
# Calcular el seno de cada punto
y = np.sin(x)

# Paso 3: Crear la figura y configurar el tamaño
plt.figure(figsize=(10, 6))  # Ancho: 10 pulgadas, Alto: 6 pulgadas

# Paso 4: Crear el gráfico de línea básico
plt.plot(x, y)  # x: eje horizontal, y: eje vertical

# Paso 5: Personalizar el gráfico
plt.xlabel('Tiempo')           # Etiqueta del eje X
plt.ylabel('Amplitud')         # Etiqueta del eje Y
plt.title('Función Seno')      # Título del gráfico
plt.grid(True, alpha=0.3)      # Agregar cuadrícula con 30% de opacidad

# Paso 6: Mostrar el gráfico
plt.show()

Gráfico de Línea Básico Fig. 5: Gráfico de línea básico mostrando la función seno

Múltiples Líneas

import matplotlib.pyplot as plt
import numpy as np

# Datos
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)

# Crear gráfico con múltiples líneas
plt.figure(figsize=(12, 8))

plt.plot(x, y1, 'b-', label='sin(x)', linewidth=2)
plt.plot(x, y2, 'r--', label='cos(x)', linewidth=2)
plt.plot(x, y3, 'g:', label='sin(x + π/4)', linewidth=2)

# Personalización
plt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.title('Funciones Trigonométricas', fontsize=14, fontweight='bold')
plt.legend(fontsize=12)
plt.grid(True, alpha=0.3)

# Agregar líneas de referencia
plt.axhline(y=0, color='k', linestyle='-', alpha=0.3)
plt.axvline(x=np.pi, color='k', linestyle='-', alpha=0.3)

plt.show()

Estilos de Línea

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 5, 50)

# Diferentes estilos de línea
estilos = ['-', '--', '-.', ':', 'solid', 'dashed', 'dashdot', 'dotted']

plt.figure(figsize=(12, 8))

for i, estilo in enumerate(estilos):
    y = np.sin(x + i * 0.5)
    plt.plot(x, y, estilo, label=f'Estilo: {estilo}', linewidth=2)

plt.xlabel('x')
plt.ylabel('sin(x + offset)')
plt.title('Estilos de Línea en Matplotlib')
plt.legend()
plt.grid(True, alpha=0.3)

plt.show()

Múltiples líneas en Matplotlib Fig. 1: Ejemplo de múltiples líneas con diferentes estilos y colores

Gráficos de Dispersión

Aprende a crear gráficos de dispersión para explorar relaciones entre variables numéricas, identificar patrones de correlación y agrupar datos visualmente. Esta sección incluye técnicas básicas y avanzadas con colores, tamaños variables y múltiples conjuntos de datos.

Los gráficos de dispersión muestran la relación entre dos variables numéricas, ideales para identificar correlaciones y patrones.

Gráfico de Dispersión Básico

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Configurar semilla para reproducibilidad
np.random.seed(42)  # Siempre obtenemos los mismos números aleatorios

# Paso 2: Generar datos sintéticos
# Crear 100 puntos aleatorios con distribución normal
x = np.random.randn(100)
# Crear relación lineal con algo de ruido
y = 2 * x + np.random.randn(100) * 0.5

# Paso 3: Crear la figura
plt.figure(figsize=(10, 6))

# Paso 4: Crear gráfico de dispersión
# x, y: coordenadas de los puntos
# alpha: transparencia (0.6 = 60% opaco)
# s: tamaño de los puntos (50 pixels)
plt.scatter(x, y, alpha=0.6, s=50)

# Paso 5: Configurar etiquetas y título
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Gráfico de Dispersión Básico')

# Paso 6: Agregar cuadrícula
plt.grid(True, alpha=0.3)

# Paso 7: Mostrar el gráfico
plt.show()

Personalización Avanzada

import matplotlib.pyplot as plt
import numpy as np

# Generar datos más complejos
np.random.seed(42)
n = 200
x = np.random.randn(n)
y = x * 2 + np.random.randn(n)
colors = np.random.rand(n)  # Colores aleatorios
sizes = 100 * np.random.rand(n)  # Tamaños aleatorios

# Crear gráfico con personalización
plt.figure(figsize=(12, 8))

scatter = plt.scatter(x, y, c=colors, s=sizes, alpha=0.6,
                     cmap='viridis', edgecolors='black', linewidth=0.5)

# Agregar barra de colores
plt.colorbar(scatter, label='Intensidad')

plt.xlabel('Variable X', fontsize=12)
plt.ylabel('Variable Y', fontsize=12)
plt.title('Gráfico de Dispersión con Personalización', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)

plt.show()

Gráfico de Dispersión con Personalización Fig. 6: Gráfico de dispersión con colores y tamaños variables

Múltiples Conjuntos de Datos

import matplotlib.pyplot as plt
import numpy as np

# Generar tres conjuntos de datos
np.random.seed(42)
n = 50

# Grupo 1
x1 = np.random.normal(0, 1, n)
y1 = np.random.normal(0, 1, n)

# Grupo 2
x2 = np.random.normal(3, 1, n)
y2 = np.random.normal(3, 1, n)

# Grupo 3
x3 = np.random.normal(0, 1, n)
y3 = np.random.normal(3, 1, n)

# Crear gráfico
plt.figure(figsize=(10, 8))

plt.scatter(x1, y1, c='red', label='Grupo 1', alpha=0.7, s=50)
plt.scatter(x2, y2, c='blue', label='Grupo 2', alpha=0.7, s=50)
plt.scatter(x3, y3, c='green', label='Grupo 3', alpha=0.7, s=50)

plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Múltiples Grupos en Gráfico de Dispersión')
plt.legend()
plt.grid(True, alpha=0.3)

plt.show()

Gráfico de dispersión con colores Fig. 2: Gráfico de dispersión con colores y tamaños variables

Gráficos de Barras

Descubre las técnicas para crear gráficos de barras verticales y horizontales, ideales para comparar categorías, mostrar frecuencias y analizar datos categóricos. Aprenderás a personalizar colores, agregar valores y crear gráficos agrupados para comparaciones efectivas.

Los gráficos de barras son excelentes para comparar categorías o mostrar frecuencias.

Gráfico de Barras Vertical

import matplotlib.pyplot as plt

# Paso 1: Definir los datos categóricos
categorias = ['Python', 'Java', 'JavaScript', 'C++', 'PHP']  # Nombres de las categorías
usuarios = [85, 72, 68, 45, 38]  # Valores correspondientes (millones de usuarios)

# Paso 2: Crear la figura
plt.figure(figsize=(10, 6))  # Establecer tamaño del gráfico

# Paso 3: Crear gráfico de barras
# categorias: etiquetas del eje X
# usuarios: alturas de las barras
# color: lista de colores para cada barra
bars = plt.bar(categorias, usuarios, color=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd'])

# Paso 4: Configurar etiquetas y título
plt.xlabel('Lenguajes de Programación')     # Etiqueta eje X
plt.ylabel('Número de Usuarios (millones)') # Etiqueta eje Y
plt.title('Popularidad de Lenguajes de Programación')  # Título

# Paso 5: Agregar cuadrícula solo en eje Y
plt.grid(True, alpha=0.3, axis='y')

# Paso 6: Agregar valores encima de cada barra
for bar, valor in zip(bars, usuarios):
    # Calcular posición del texto
    x_pos = bar.get_x() + bar.get_width()/2  # Centro de la barra
    y_pos = bar.get_height() + 1             # 1 unidad arriba de la barra

    # Agregar texto con formato
    plt.text(x_pos, y_pos, f'{valor}M',
             ha='center', va='bottom', fontweight='bold')

# Paso 7: Mostrar el gráfico
plt.show()

Gráfico de Barras Vertical Fig. 7: Gráfico de barras vertical mostrando popularidad de lenguajes de programación

Gráfico de Barras Horizontal

import matplotlib.pyplot as plt

# Datos
paises = ['China', 'India', 'Estados Unidos', 'Indonesia', 'Brasil']
poblacion = [1439, 1380, 331, 273, 213]

# Crear gráfico de barras horizontal
plt.figure(figsize=(10, 6))
bars = plt.barh(paises, poblacion, color='skyblue', edgecolor='navy', linewidth=1)

# Personalización
plt.xlabel('Población (millones)')
plt.ylabel('País')
plt.title('Población por País (2023)')
plt.grid(True, alpha=0.3, axis='x')

# Agregar valores al final de las barras
for bar, valor in zip(bars, poblacion):
    plt.text(bar.get_width() + 10, bar.get_y() + bar.get_height()/2,
             f'{valor}M', ha='left', va='center', fontweight='bold')

plt.show()

Gráfico de Barras Horizontal Fig. 8: Gráfico de barras horizontal mostrando población por país

Barras Agrupadas

import matplotlib.pyplot as plt
import numpy as np

# Datos
categorias = ['Q1', 'Q2', 'Q3', 'Q4']
ventas_A = [120, 150, 180, 200]
ventas_B = [100, 130, 160, 190]

# Posiciones de las barras
x = np.arange(len(categorias))
ancho = 0.35

# Crear gráfico
plt.figure(figsize=(10, 6))

bars1 = plt.bar(x - ancho/2, ventas_A, ancho, label='Producto A',
                color='lightblue', edgecolor='blue', linewidth=1)
bars2 = plt.bar(x + ancho/2, ventas_B, ancho, label='Producto B',
                color='lightcoral', edgecolor='red', linewidth=1)

# Personalización
plt.xlabel('Trimestre')
plt.ylabel('Ventas ($)')
plt.title('Ventas por Trimestre - Comparación de Productos')
plt.xticks(x, categorias)
plt.legend()
plt.grid(True, alpha=0.3, axis='y')

# Agregar valores
for bars in [bars1, bars2]:
    for bar in bars:
        height = bar.get_height()
        plt.text(bar.get_x() + bar.get_width()/2, height + 5,
                 f'${height}', ha='center', va='bottom', fontweight='bold')

plt.show()

Barras agrupadas comparativas Fig. 3: Barras agrupadas para comparar múltiples series de datos

Gráficos de Área

Explora los gráficos de área para mostrar la evolución temporal de variables, con énfasis en el área bajo las curvas. Esta sección cubre gráficos básicos de área y técnicas avanzadas de áreas apiladas para comparar múltiples series de datos de manera visualmente impactante.

Los gráficos de área muestran la evolución de una o más variables, rellenando el área bajo las líneas.

Gráfico de Área Básico

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Generar datos para el gráfico
# Crear 100 puntos entre 0 y 10
x = np.linspace(0, 10, 100)
# Función sinusoidal desplazada hacia arriba (mínimo = 2)
y = np.sin(x) + 2

# Paso 2: Crear la figura
plt.figure(figsize=(10, 6))

# Paso 3: Crear gráfico de área
# fill_between: rellena el área entre la línea y el eje X
# x, y: coordenadas de la línea
# alpha: transparencia (0.5 = 50% opaco)
# color: color de relleno
# label: etiqueta para la leyenda
plt.fill_between(x, y, alpha=0.5, color='skyblue', label='Área bajo la curva')

# Paso 4: Agregar línea de contorno
# plot: dibuja la línea sobre el área rellena
plt.plot(x, y, color='blue', linewidth=2, label='Línea')

# Paso 5: Configurar etiquetas y título
plt.xlabel('x')                    # Etiqueta eje X
plt.ylabel('y')                    # Etiqueta eje Y
plt.title('Gráfico de Área Básico') # Título

# Paso 6: Agregar leyenda y cuadrícula
plt.legend()                       # Mostrar leyendas
plt.grid(True, alpha=0.3)          # Cuadrícula con 30% opacidad

# Paso 7: Mostrar el gráfico
plt.show()

Gráfico de Área Básico Fig. 9: Gráfico de área básico mostrando el área bajo una curva

Áreas Apiladas

import matplotlib.pyplot as plt
import numpy as np

# Datos
x = np.arange(1, 13)
ventas_online = [120, 150, 180, 200, 250, 300, 280, 320, 350, 380, 400, 420]
ventas_tienda = [200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420]

# Crear gráfico de áreas apiladas
plt.figure(figsize=(12, 8))

plt.fill_between(x, 0, ventas_online, alpha=0.7, color='lightblue',
                 label='Ventas Online', edgecolor='blue', linewidth=1)
plt.fill_between(x, ventas_online, ventas_online + ventas_tienda, alpha=0.7,
                 color='lightcoral', label='Ventas Tienda', edgecolor='red', linewidth=1)

# Línea total
total = np.array(ventas_online) + np.array(ventas_tienda)
plt.plot(x, total, 'k-', linewidth=2, label='Total')

plt.xlabel('Mes')
plt.ylabel('Ventas ($)')
plt.title('Ventas Online vs Tienda - Áreas Apiladas')
plt.xticks(x, ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun',
               'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'])
plt.legend()
plt.grid(True, alpha=0.3)

plt.show()

Área apilada con múltiples series Fig. 4: Gráfico de área apilada mostrando contribución de diferentes componentes

Gráficos de Escalera

Aprende a crear gráficos de escalera que muestran cambios discretos y abruptos en los datos, ideales para series temporales donde los cambios ocurren en momentos específicos. Esta técnica es especialmente útil para datos con transiciones claras y cambios de estado.

Los gráficos de escalera muestran cambios discretos en los datos, útiles para series temporales con cambios abruptos.

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Preparar datos de temperatura por hora
# Crear array de 25 horas (0 a 24)
horas = np.arange(0, 25, 1)
# Datos de temperatura simulados para cada hora
temperatura = [15, 14, 13, 12, 11, 12, 15, 18, 22, 25, 28, 30, 32,
               33, 32, 30, 28, 25, 22, 20, 18, 17, 16, 15, 14]

# Paso 2: Crear la figura
plt.figure(figsize=(12, 6))

# Paso 3: Graficar línea continua para comparación
# Azul, 30% opacidad, etiqueta para leyenda
plt.plot(horas, temperatura, 'b-', alpha=0.3, label='Línea continua')

# Paso 4: Crear gráfico de escalera
# step: crea gráfico de escalera
# 'r-': línea roja sólida
# linewidth: grosor de línea
# where='post': escalones después de cada punto
plt.step(horas, temperatura, 'r-', linewidth=2, where='post', label='Escalera')

# Paso 5: Configurar ejes y etiquetas
plt.xlabel('Hora del día')         # Etiqueta eje X
plt.ylabel('Temperatura (°C)')     # Etiqueta eje Y
plt.title('Temperatura a lo Largo del Día')  # Título

# Paso 6: Configurar ticks del eje X
plt.xticks(np.arange(0, 25, 2))    # Marcas cada 2 horas

# Paso 7: Agregar cuadrícula y leyenda
plt.grid(True, alpha=0.3)          # Cuadrícula
plt.legend()                       # Mostrar leyendas

# Paso 8: Mostrar el gráfico
plt.show()

Gráfico de Escalera Fig. 11: Gráfico de escalera mostrando cambios discretos en la temperatura

Gráficos de Tallo

Descubre los gráficos de tallo (stem plots) para mostrar la distribución de datos discretos con una representación visual simple pero efectiva. Esta técnica es útil para visualizar funciones matemáticas y distribuciones de datos de manera clara y directa.

Los gráficos de tallo muestran la distribución de datos discretos, similares a histogramas pero más simples.

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Generar datos para la función exponencial
# Crear puntos x desde 0.1 hasta 4 con paso 0.1
x = np.arange(0.1, 4, 0.1)
# Calcular exp(-x) para cada punto
y = np.exp(-x)

# Paso 2: Crear la figura
plt.figure(figsize=(10, 6))

# Paso 3: Crear gráfico de tallo
# stem: crea gráfico con líneas verticales desde base hasta puntos
# linefmt: formato de las líneas verticales ('b-': azul sólido)
# markerfmt: formato de los marcadores ('bo': círculos azules)
# basefmt: formato de la línea base ('k-': negro sólido)
markerline, stemlines, baseline = plt.stem(x, y, linefmt='b-', markerfmt='bo',
                                           basefmt='k-', label='Datos')

# Paso 4: Personalizar apariencia de los elementos
# Configurar grosor de las líneas verticales
plt.setp(stemlines, linewidth=1.5)
# Configurar tamaño de los marcadores
plt.setp(markerline, markersize=6)

# Paso 5: Configurar etiquetas y título
plt.xlabel('x')                           # Variable independiente
plt.ylabel('exp(-x)')                     # Función exponencial
plt.title('Gráfico de Tallo: Función Exponencial')

# Paso 6: Agregar cuadrícula y leyenda
plt.grid(True, alpha=0.3)                 # Cuadrícula
plt.legend()                              # Mostrar leyenda

# Paso 7: Mostrar el gráfico
plt.show()

Gráfico de Tallo Fig. 12: Gráfico de tallo mostrando la función exponencial

Combinando Múltiples Tipos

Aprende técnicas avanzadas para combinar diferentes tipos de gráficos en una sola visualización, utilizando múltiples ejes Y, leyendas compartidas y layouts complejos. Esta sección es esencial para crear dashboards informativos que muestren múltiples aspectos de los datos simultáneamente.

A menudo es útil combinar diferentes tipos de gráficos en una misma visualización.

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Preparar datos de múltiples métricas
meses = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun']  # 6 meses
ventas = [120, 150, 180, 200, 250, 300]           # Ventas en $
clientes = [45, 52, 48, 61, 55, 67]               # Número de clientes
satisfaccion = [4.2, 4.1, 4.3, 4.4, 4.5, 4.6]    # Satisfacción 1-5

# Paso 2: Crear figura con eje Y principal
fig, ax1 = plt.subplots(figsize=(12, 8))

# Paso 3: Crear gráfico de barras para ventas (eje Y izquierdo)
bars = ax1.bar(meses, ventas, color='lightblue', alpha=0.7, label='Ventas ($)')
ax1.set_xlabel('Mes')                           # Etiqueta eje X
ax1.set_ylabel('Ventas ($)', color='blue')      # Etiqueta eje Y izquierdo
ax1.tick_params(axis='y', labelcolor='blue')    # Color ticks izquierdo

# Paso 4: Crear segundo eje Y para clientes
ax2 = ax1.twinx()  # Compartir eje X con ax1
line = ax2.plot(meses, clientes, 'r-o', linewidth=2, label='Clientes')
ax2.set_ylabel('Número de Clientes', color='red')  # Etiqueta eje Y derecho
ax2.tick_params(axis='y', labelcolor='red')        # Color ticks derecho

# Paso 5: Crear tercer eje Y para satisfacción (desplazado)
ax3 = ax1.twinx()  # Otro eje Y compartido
ax3.spines['right'].set_position(('outward', 60))  # Desplazar 60 puntos
scatter = ax3.scatter(meses, satisfaccion, c='green', s=100, label='Satisfacción', marker='s')
ax3.set_ylabel('Satisfacción (1-5)', color='green') # Etiqueta tercer eje Y
ax3.tick_params(axis='y', labelcolor='green')       # Color ticks
ax3.set_ylim(3.5, 5)                               # Límite del eje Y

# Paso 6: Configurar título y cuadrícula
plt.title('Análisis de Ventas, Clientes y Satisfacción')
ax1.grid(True, alpha=0.3)  # Cuadrícula en eje principal

# Paso 7: Combinar todas las leyendas
# Obtener handles y labels de cada eje
lines1, labels1 = ax1.get_legend_handles_labels()  # Barras
lines2, labels2 = ax2.get_legend_handles_labels()  # Línea
lines3, labels3 = ax3.get_legend_handles_labels()  # Puntos
# Combinar y mostrar todas las leyendas
ax1.legend(lines1 + lines2 + lines3, labels1 + labels2 + labels3, loc='upper left')

# Paso 8: Mostrar el gráfico
plt.show()

Combinando Múltiples Tipos Fig. 13: Combinación de barras, líneas y dispersión en múltiples ejes Y

Casos de Uso Prácticos

Aplica todos los conocimientos aprendidos en escenarios reales del mundo profesional. Esta sección incluye ejemplos completos de análisis de ventas, visualización de datos científicos y creación de dashboards, mostrando cómo combinar múltiples técnicas para resolver problemas reales de visualización de datos.

1. Análisis de Tendencias de Ventas

import matplotlib.pyplot as plt
import numpy as np

# Paso 1: Generar datos sintéticos de ventas
np.random.seed(42)  # Para reproducibilidad
meses = np.arange(1, 13)  # Meses del 1 al 12
# Tendencia lineal: ventas base + 50 por mes
ventas_base = 1000 + 50 * meses
# Agregar variabilidad realista
ruido = np.random.normal(0, 100, 12)  # Ruido gaussiano
ventas = ventas_base + ruido

# Paso 2: Crear figura grande para dashboard
plt.figure(figsize=(15, 10))  # 15x10 pulgadas

# Paso 3: Primer subplot - Tendencia temporal
plt.subplot(2, 2, 1)  # 2 filas, 2 columnas, posición 1
plt.plot(meses, ventas, 'b-o', linewidth=2, markersize=6)
plt.xlabel('Mes')
plt.ylabel('Ventas ($)')
plt.title('Tendencia de Ventas Mensuales')
plt.grid(True, alpha=0.3)

# Paso 4: Segundo subplot - Distribución (Histograma)
plt.subplot(2, 2, 2)  # Posición 2
plt.hist(ventas, bins=6, edgecolor='black', alpha=0.7)
plt.xlabel('Rango de Ventas')
plt.ylabel('Frecuencia')
plt.title('Distribución de Ventas')
plt.grid(True, alpha=0.3)

# Paso 5: Tercer subplot - Relación Mes-Ventas
plt.subplot(2, 2, 3)  # Posición 3
plt.scatter(meses, ventas, s=100, alpha=0.6, c=ventas, cmap='viridis')
plt.xlabel('Mes')
plt.ylabel('Ventas ($)')
plt.title('Relación Mes-Ventas')
plt.colorbar(label='Ventas ($)')  # Barra de colores
plt.grid(True, alpha=0.3)

# Paso 6: Cuarto subplot - Barras por mes
plt.subplot(2, 2, 4)  # Posición 4
meses_str = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun',
             'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic']
plt.bar(meses_str, ventas, color='skyblue', edgecolor='navy')
plt.xlabel('Mes')
plt.ylabel('Ventas ($)')
plt.title('Ventas por Mes')
plt.xticks(rotation=45)  # Rotar etiquetas 45 grados
plt.grid(True, alpha=0.3, axis='y')

# Paso 7: Ajustar layout y mostrar
plt.tight_layout()  # Ajustar automáticamente los espacios
plt.show()

Análisis de Tendencias de Ventas Fig. 14: Dashboard completo de análisis de ventas con múltiples tipos de gráficos

2. Visualización de Datos Científicos

import matplotlib.pyplot as plt
import numpy as np

# Simular datos de experimento científico
np.random.seed(42)
tiempo = np.linspace(0, 100, 1000)
senal = np.sin(0.1 * tiempo) + 0.5 * np.sin(0.5 * tiempo) + 0.1 * np.random.randn(1000)

# Crear visualización científica
plt.figure(figsize=(15, 10))

# Señal temporal
plt.subplot(2, 2, 1)
plt.plot(tiempo, senal, 'b-', linewidth=1, alpha=0.8)
plt.xlabel('Tiempo (s)')
plt.ylabel('Amplitud')
plt.title('Señal Temporal')
plt.grid(True, alpha=0.3)

# Histograma de la señal
plt.subplot(2, 2, 2)
plt.hist(senal, bins=50, edgecolor='black', alpha=0.7, density=True)
plt.xlabel('Amplitud')
plt.ylabel('Densidad de Probabilidad')
plt.title('Distribución de Amplitud')
plt.grid(True, alpha=0.3)

# Espectro de frecuencia (simplificado)
plt.subplot(2, 2, 3)
frecuencias = np.fft.fftfreq(len(tiempo), tiempo[1] - tiempo[0])
espectro = np.abs(np.fft.fft(senal))
plt.plot(frecuencias[:len(frecuencias)//2], espectro[:len(espectro)//2], 'r-')
plt.xlabel('Frecuencia (Hz)')
plt.ylabel('Magnitud')
plt.title('Espectro de Frecuencia')
plt.grid(True, alpha=0.3)

# Diagrama de dispersión con densidad
plt.subplot(2, 2, 4)
plt.scatter(tiempo[::10], senal[::10], alpha=0.6, s=20, c=senal[::10], cmap='coolwarm')
plt.xlabel('Tiempo (s)')
plt.ylabel('Amplitud')
plt.title('Diagrama de Dispersión con Densidad')
plt.colorbar(label='Amplitud')
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

Visualización de Datos Científicos Fig. 15: Visualización científica completa con señal temporal, histograma, espectro y dispersión

¡Has aprendido los tipos de gráficos básicos más importantes en Matplotlib! Ahora puedes crear visualizaciones efectivas para diferentes tipos de datos y casos de uso.

En el próximo tutorial aprenderás sobre Personalización de Gráficos para hacer tus visualizaciones aún más atractivas y profesionales.

Toca los botones para interactuar

Comentarios

Comentarios

Inicia sesión para dejar un comentario.

No hay comentarios aún

Sé el primero en comentar este tutorial.

Tutoriales Relacionados

Descubre más tutoriales relacionados que podrían ser de tu interés

Imagen destacada del tutorial relacionado: Gráficos 3D con Matplotlib: Visualización Tridimensional
Matplotlib

Gráficos 3D con Matplotlib: Visualización Tridimensional

Aprende a crear gráficos 3D impactantes con Matplotlib: superficies, dispersión 3D, líneas 3D, barras 3D y animaciones tridimensionales.

José Elías Romero Guanipa
01 Sep 2025
Imagen destacada del tutorial relacionado: Gráficos Avanzados con Matplotlib: Visualizaciones Estadísticas y Complejas
Matplotlib

Gráficos Avanzados con Matplotlib: Visualizaciones Estadísticas y Complejas

Aprende a crear gráficos avanzados con Matplotlib: histogramas, mapas de calor, diagramas de caja, gráficos polares y visualizaciones estadísticas complejas.

José Elías Romero Guanipa
01 Sep 2025
Imagen destacada del tutorial relacionado: Introducción a Matplotlib: Visualización de Datos en Python
Matplotlib

Introducción a Matplotlib: Visualización de Datos en Python

Aprende los fundamentos de Matplotlib, la biblioteca más popular para crear gráficos y visualizaciones en Python. Desde la instalación hasta tu primer gráfico.

José Elías Romero Guanipa
01 Sep 2025
Imagen destacada del tutorial relacionado: Personalización de Gráficos con Matplotlib: Colores, Estilos y Temas
Matplotlib

Personalización de Gráficos con Matplotlib: Colores, Estilos y Temas

Aprende a personalizar completamente tus gráficos con Matplotlib: colores, estilos, fuentes, leyendas, anotaciones y temas profesionales.

José Elías Romero Guanipa
01 Sep 2025
Imagen destacada del tutorial relacionado: Subplots y Múltiples Figuras con Matplotlib: Layouts Complejos
Matplotlib

Subplots y Múltiples Figuras con Matplotlib: Layouts Complejos

Aprende a crear layouts complejos con múltiples gráficos usando subplots, GridSpec y técnicas avanzadas de organización visual.

José Elías Romero Guanipa
01 Sep 2025
Foto de perfil del autor José Elías Romero Guanipa
José Elías Romero Guanipa
Autor

🌟 Nube de Etiquetas

Descubre temas populares en nuestros tutoriales

python
python 25 tutoriales
poo
poo 8 tutoriales
ciencia de datos
ciencia de datos 8 tutoriales
patrones diseño
patrones diseño 7 tutoriales
matplotlib
matplotlib 7 tutoriales
pandas
pandas 6 tutoriales
visualizacion
visualizacion 6 tutoriales
principiante
principiante 5 tutoriales
numpy
numpy 5 tutoriales
c++
c++ 5 tutoriales
estadistica
estadistica 4 tutoriales
cpp
cpp 4 tutoriales
bases de datos
bases de datos 4 tutoriales
dataframe
dataframe 4 tutoriales
csv
csv 3 tutoriales
json
json 3 tutoriales
machine learning
machine learning 3 tutoriales
rendimiento
rendimiento 3 tutoriales
mysql
mysql 3 tutoriales
postgresql
postgresql 3 tutoriales
analisis de datos
analisis de datos 3 tutoriales
graficos
graficos 3 tutoriales
excepciones
excepciones 2 tutoriales
algoritmos
algoritmos 2 tutoriales
estructuras datos
estructuras datos 2 tutoriales

Las etiquetas más grandes y brillantes aparecen en más tutoriales

logo logo

©2024 ViveBTC