• 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
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

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

Uso de múltiples ejes en Matplotlib

agosto 4, 2022 Por Daniel Rodríguez 1 comentario
Tiempo de lectura: 4 minutos

En algunas situaciones puede ser interesante incluir más de una serie de datos en una gráfica, facilitando así la comparación de los patrones existentes en ambas. Cuando las dos series comparten las mismas unidades es posible representarlas en el mismo eje, pero no así cuando son diferentes. Siendo necesario en estos casos usar un eje diferente para cada una de las series. Algo que se puede conseguir mediante el uso de múltiples ejes en Matplotlib, característica disponible tanto para el eje de ordenadas como para el de abscisas.

Múltiples ejes de ordenadas en Matplotlib

El método para agregar un nuevo eje de ordenadas en Matplotlib a una figura es twinx(). Cuando se llama a este método se crea un segundo eje y que comparte el eje x con el actual. Pudiéndose usar a partir de este momento el nuevo objeto para representar cualquier serie de datos.

La forma más sencilla de ver esto es con un ejemplo. En el caso de que contemos con los datos de la altura en centímetros y los pesos en kilogramos de un conjunto de usuarios podemos pensar en representar ambos valores en una única gráfica. Debido a que la estatura de las personas se suele mover en el rango de las centenas y el peso en decenas, usar el mismo eje no es una opción. Así lo que se puede hacer es crear una primera gráfica con la estatura, y una vez hecho esto crear una segunda eje con twinx() en el que se puede representar el peso. Algo como lo que se muestra en el siguiente código.

Balance de 2025 en Analytics Lane
En Analytics Lane
Balance de 2025 en Analytics Lane

import matplotlib.pyplot as plt

name = ['Aguistin', 'Fionnula', 'Connie', 'Rad', 'Marlow']
heights = [192, 156, 162, 185, 196]
weight = [78, 52, 56, 72, 85]

fig, axes = plt.subplots()

axes.bar(name, heights, color='b')
axes.set_xlabel('Nombre')
axes.set_ylabel('Estatura en cms', color='b')

twin_axes = axes.twinx() 
twin_axes.plot(name, weight, 'r')
twin_axes.set_ylabel('Peso en kg', color='r')

plt.show()

Con lo que se produce la siguiente gráfica.

Representación en Matplotlib del peso y la altura de los usuarios en una gráfica con dos ejes.
Representación en Matplotlib del peso y la altura de los usuarios en una gráfica con dos ejes.

Nótese que en este ejemplo en primer lugar se crea una figura y en los ejes de esta se representa un gráfico de barras con el nombre y la altura. Agregándoles tanto al eje x como al eje y una etiqueta. Para facilitar la lectura de los datos, en el caso del eje y, se usa el mismo color para la etiqueta que para la serie de datos.

Una vez creada la primera gráfica se procede a la creación de un nuevo eje. Para lo que se usa el método twinx(). Empleando el eje que devuelve este método para crear una gráfica con el peso en kilogramos asociado a la altura. Siendo necesario únicamente en este caso agregar la etiqueta para el eje y, agregando también el color para facilitar la interpretación de la figura resultante. Siendo necesario agregar una para el eje x ya que este se comparte con la anterior. Una vez hecho esto se puede representar el gráfico con el método plot().

Publicidad


Múltiples ejes de abscisas en Matplotlib

Lo que se ha hecho para en el ejemplo anterior para el eje de ordenadas también se puede hacer para el de abscisas. En este caso el método que se debe llamar es twiny(). Al igual que el anterior este crea y devuelve un nuevo eje x que comparte el y con el actual.

Esto es algo que se puede ver en el siguiente ejemplo donde se tiene dos series que suceden en distintos instantes de tiempo. Al igual que el caso anterior, primero se dibuja la primera serie para posteriormente crear un nuevo eje y sobre este representar la segunda.

import numpy as np
import matplotlib.pyplot as plt

x_1 = np.linspace(0, np.pi, 200)
y_1 = np.cos(3 * np.pi * x_1)

x_2 = np.linspace(10, 14, 200)
y_2 = np.cos(np.pi * x_2)

fig, axes = plt.subplots()

axes.plot(x_1, y_1, 'b')
axes.set_xlabel('Tiempo', color='b')
axes.set_ylabel('Amplitud')

twin_axes = axes.twiny()
twin_axes.plot(x_2, y_2, 'r')
twin_axes.set_xlabel('Tiempo (2)', color='r')

plt.show()

Los que producen como resultado la siguiente figura.

Uso de múltiples ejes x en Matplotlib para compara dos series que se producen en diferentes momentos
Uso de múltiples ejes x en Matplotlib para compara dos series que se producen en diferentes momentos

Al igual que en el ejemplo de la sección anterior se ha usado el mismo color para la serie que para la etiqueta del eje, algo que facilita la interpretación de los datos.

Conclusiones

En la publicación de hoy se ha visto cómo se pueden crear y usar múltiples ejes en Matplotlib para representar series de datos que no comparten unidades. Pudiendo crear de este modo gráficos en los que se puede comparar la evolución de diferentes variables.

¿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?

Publicidad


Publicaciones relacionadas

  • Balance de 2025 en Analytics Lane
  • El promedio engañoso: cuando la media no cuenta toda la historia
  • Comprender las pruebas de hipótesis para no especialistas
  • Ordenadores para Machine Learning e Inteligencia Artificial en 2026: Guía completa para elegir el equipo adecuado según tu perfil y presupuesto
  • ¿Qué significa realmente un porcentaje? Por qué no es lo mismo subir un 20% que bajar un 20%
  • null y undefined en JavaScript y TypeScript: ¿son realmente lo mismo?
  • Riesgo relativo vs riesgo absoluto: la trampa de los titulares alarmistas

Publicado en: Python Etiquetado como: Matplotlib

Interacciones con los lectores

Comentarios

  1. Laura Sánchez dice

    diciembre 6, 2024 a las 12:42 pm

    Gran explicación sobre el uso de múltiples ejes en Matplotlib. El paso a paso es muy claro y práctico, perfecto para quienes buscamos mejorar nuestras visualizaciones en Python. ¡Gracias por compartir!

    Responder

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

Riesgo relativo vs riesgo absoluto: la trampa de los titulares alarmistas

enero 29, 2026 Por Daniel Rodríguez

null y undefined en JavaScript y TypeScript: ¿son realmente lo mismo?

enero 27, 2026 Por Daniel Rodríguez

¿Qué significa realmente un porcentaje? Por qué no es lo mismo subir un 20% que bajar un 20%

enero 22, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python
  • Vectores, tuplas y diccionarios en Julia (6ª parte – ¡Hola Julia!) publicado el julio 30, 2020 | en Julia
  • Media, mediana y moda: Descubre cómo interpretar las medidas de tendencia central con ejemplos claros y sin complicaciones publicado el mayo 16, 2025 | en Ciencia de datos
  • Cómo ignorar certificados SSL inválidos con wget publicado el mayo 1, 2024 | en Herramientas
  • Identificando celdas con espacios en blanco en Excel publicado el noviembre 5, 2018 | en Herramientas

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.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

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