2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Matplotlib

Tutorial Matplotlib: Ejes, ajustes de ejes

Aprende a personalizar gráficos en Matplotlib ajustando ejes, escalas y etiquetas, mejorando la visualización de datos para análisis avanzados.

Aprende Matplotlib GRATIS y certifícate

¿Qué son los ejes en Matplotlib?

En Matplotlib, los ejes son componentes fundamentales que definen el sistema de coordenadas en el que se representan los datos. 

Un gráfico típico consta de uno o más ejes, que son instancias de la clase Axes. Los ejes no solo determinan la orientación y el posicionamiento de los datos, sino que también controlan múltiples aspectos visuales como las etiquetas, los límites y las escalas.

Cada eje en Matplotlib está asociado a un objeto Figure, que actúa como un contenedor para uno o más ejes. El método add_subplot o add_axes se utiliza para añadir ejes a una figura. Por ejemplo, al crear una figura con un solo eje, se puede hacer de la siguiente manera:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

El resultado visual sería el siguiente:

Aquí, ax representa el objeto Axes, y fig es el objeto Figure que lo contiene. Los ejes son responsables de manejar el espacio de datos y proporcionan métodos para ajustar y personalizar la visualización del gráfico.

Los ejes en Matplotlib permiten personalizar aspectos como los límites de visualización, escalas y etiquetas. Los métodos set_xlim y set_ylim permiten establecer manualmente los límites de los ejes x e y, respectivamente. Por ejemplo, para ajustar los límites del eje x:

ax.set_xlim(0, 10)

Además, es posible modificar la escala de los ejes para representar los datos de manera lineal, logarítmica, entre otras. Esto se logra con el método set_xscale o set_yscale. Por ejemplo, para establecer una escala logarítmica en el eje y:

ax.set_yscale('log')

Los ejes también manejan las etiquetas y los títulos. Se pueden especificar títulos para los ejes x e y utilizando set_xlabel y set_ylabel:

ax.set_xlabel('Eje X')
ax.set_ylabel('Eje Y')

El título del gráfico completo se puede establecer con set_title:

ax.set_title('Título del gráfico')

Una característica importante de los ejes en Matplotlib es la capacidad de ajustar los ticks, que son las marcas en los ejes que indican las posiciones de los datos. Los métodos set_xticks y set_yticks permiten personalizar estas marcas:

ax.set_xticks([0, 2, 4, 6, 8, 10])
ax.set_yticks([0, 1, 10, 100])

Además, se pueden personalizar las etiquetas de los ticks con set_xticklabels y set_yticklabels para mostrar texto personalizado:

ax.set_xticklabels(['cero', 'dos', 'cuatro', 'seis', 'ocho', 'diez'])

En resumen, los ejes son componentes esenciales en Matplotlib que permiten la representación precisa y personalizable de los datos en un gráfico. Proporcionan la infraestructura necesaria para ajustar la visualización de los gráficos de acuerdo a las necesidades específicas de cada análisis.

Ajustes de límites de ejes

Los ajustes de límites de los ejes en Matplotlib son esenciales para controlar la parte del gráfico que se desea visualizar. Modificar estos límites permite enfocar la atención en regiones específicas de los datos, lo que es crucial para un análisis detallado. 

Los métodos set_xlim y set_ylim se utilizan para establecer los límites de los ejes x e y, respectivamente. 

Por ejemplo, para fijar el rango del eje x entre 0 y 10:

ax.set_xlim(0, 10)

En ocasiones, es necesario ajustar los límites de los ejes de manera automática en función de los datos. Matplotlib ofrece el método autoscale_view que permite recalcular los límites de los ejes para que se adapten a los datos actuales:

ax.autoscale_view()

Este método es útil cuando se actualizan los datos de un gráfico y se desea que los límites se ajusten automáticamente sin necesidad de especificarlos manualmente.

Además, es posible fijar límites asimétricos en los ejes para resaltar ciertas áreas del gráfico. Por ejemplo, para establecer un límite inferior de 2 y un límite superior de 8 en el eje y:

ax.set_ylim(2, 8)

También se pueden utilizar listas o arrays para definir los límites de los ejes, lo que es útil cuando se trabaja con datos que cambian dinámicamente. En este contexto, los límites se pueden ajustar mediante la función set_xlim o set_ylim, basándose en los valores mínimos y máximos calculados a partir de los datos:

import numpy as np
import matplotlib.pyplot as plt

# Crear un generador de números aleatorios con una semilla específica
rng = np.random.default_rng(seed=42)

# Generación de datos aleatorios
data = rng.random(100)

# Creación de una figura y un conjunto de ejes
fig, ax = plt.subplots()

# Configuración de los límites del eje x basados en los datos
ax.set_xlim(np.min(data), np.max(data))


plt.show()

La función margins permite añadir un margen alrededor de los datos visualizados, aumentando la claridad del gráfico. Esta función acepta un valor entre 0 y 1 que indica el porcentaje de margen respecto al tamaño de los datos:

ax.margins(x=0.1, y=0.2)

Este enfoque es útil para evitar que los datos queden pegados a los bordes del gráfico, mejorando así la legibilidad.

En situaciones donde es necesario bloquear o desbloquear los límites de los ejes para evitar que se modifiquen accidentalmente, se puede utilizar el método set_xlim o set_ylim con el argumento emit=False. Esto impide que los eventos de actualización afecten los límites del gráfico:

ax.set_xlim(0, 10, emit=False)

Finalmente, es importante considerar que los ajustes de límites de ejes pueden tener un impacto significativo en la representación visual de los datos, especialmente en gráficos con escalas no lineales. Por lo tanto, es recomendable revisar y ajustar los límites de manera adecuada para garantizar una representación precisa y comprensible de los datos.

Ajustes de escalas

En Matplotlib, ajustar la escala de los ejes permite una representación más adecuada de los datos en función de su naturaleza y distribución. Las escalas más comunes son la lineal y la logarítmica, aunque también se pueden utilizar otras escalas como la simétrica o la logit. Para cambiar la escala de un eje, se utilizan los métodos set_xscale y set_yscale

Por ejemplo, para aplicar una escala logarítmica en el eje x, se hace de la siguiente manera:

ax.set_xscale('log')

Esto es útil cuando se trabaja con datos que abarcan varios órdenes de magnitud, permitiendo una visualización más clara de las relaciones entre ellos.

Además de las escalas lineal y logarítmica, Matplotlib permite el uso de escalas simétricas (symlog), que combinan características de ambas para manejar datos que incluyen valores negativos y positivos. La escala simétrica se define mediante un umbral que determina el rango en el que la escala es lineal. 

Por ejemplo:

ax.set_yscale('symlog', linthresh=0.1)

En este caso, linthresh especifica el rango alrededor de cero donde la escala permanece lineal, lo que es útil para datos que oscilan alrededor de cero.

Otra opción es la escala logit, que transforma los datos utilizando la función logit, común en modelos estadísticos. Esta escala es apropiada para datos que representan proporciones o probabilidades. Se aplica de la siguiente forma:

ax.set_xscale('logit')

Es importante tener en cuenta que la escala logit requiere que los datos estén en el rango (0, 1), ya que transforma los valores en probabilidades.

Matplotlib también permite personalizar aspectos visuales de las escalas, como los ticks y las etiquetas.

Los ticks en escalas logarítmicas, por ejemplo, pueden ser controlados mediante el uso de LogLocator y LogFormatter, que permiten definir la ubicación y el formato de las marcas.

Un ejemplo de configuración de ticks en una escala logarítmica es:

from matplotlib.ticker import LogLocator, LogFormatter

ax.xaxis.set_major_locator(LogLocator(base=10.0, numticks=10))
ax.xaxis.set_major_formatter(LogFormatter(base=10.0))

Este ajuste permite una visualización clara y consistente de los ticks en un eje logarítmico.

También es posible crear escalas personalizadas definiendo una clase que herede de ScaleBase e implementando los métodos necesarios para gestionar la transformación y el inverso de la escala. Esto es útil cuando se requiere un tipo de escala específico no proporcionado por defecto en Matplotlib. 

Aquí un ejemplo básico de cómo definir una escala personalizada:

from matplotlib.scale import ScaleBase

class CustomScale(ScaleBase):
    def __init__(self, axis, **kwargs):
        super().__init__(axis)
    
    def get_transform(self):
        return self.Transform()
    
    class Transform:
        # Implementación de la transformación
        pass

Este enfoque avanzado permite un control completo sobre la forma en que se transforman y visualizan los datos en los gráficos, aunque requiere un conocimiento profundo de cómo funcionan las escalas y transformaciones en Matplotlib.

Aprende Matplotlib GRATIS online

Ejercicios de esta lección Ejes, ajustes de ejes

Evalúa tus conocimientos de esta lección Ejes, ajustes de ejes con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Evaluación código global

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Código

Integración de Matplotlib con Numpy

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Test

Evaluación test global

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Test

Análisis mercado de criptomonedas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Proyecto

Gráficos univariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Código

Gráficos multivariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Código

Conceptos básicos de Matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Puzzle

Análisis de ventas de videojuegos

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Proyecto

Temas predefinidos, colores y estilos

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Código

Subplots y grillas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Código

Gráficos bivariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Código

Integración de Matplotlib con Pandas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Test

Visualización de datos dataset iris

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Proyecto

Introducción e instalación de Matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Test

Ajuste de ejes en matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Puzzle

Integración de Matplotlib con Seaborn

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Test

Títulos, etiquetas y leyenda y límites

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Test

Todas las lecciones de Matplotlib

Accede a todas las lecciones de Matplotlib y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción E Instalación De Matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Introducción Y Entorno

Conceptos Básicos De Matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Introducción Y Entorno

Gráficos Univariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Creación De Gráficos

Gráficos Bivariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Creación De Gráficos

Gráficos Multivariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Creación De Gráficos

Títulos, Etiquetas Y Leyenda Y Límites

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Temas Predefinidos, Colores Y Estilos

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Ejes, Ajustes De Ejes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Subplots Y Grillas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Integración De Matplotlib Con Numpy

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Integraciones

Integración De Matplotlib Con Pandas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Integraciones

Integración De Matplotlib Con Seaborn

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Integraciones

Evaluación Test De Conocimientos

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Evaluación Matplotlib

Evaluación Conocimiento De Código

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Evaluación Matplotlib

Accede GRATIS a Matplotlib y certifícate

Certificados de superación de Matplotlib

Supera todos los ejercicios de programación del curso de Matplotlib y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

1. Comprender la estructura y función de los ejes en Matplotlib.

2. Aprender a ajustar los límites de los ejes para mejorar la visualización de datos.

3. Explorar las diferentes escalas de ejes y su aplicación en gráficos.

4. Personalizar etiquetas y títulos de los ejes para una mejor interpretación.

5. Configurar los ticks y sus etiquetas para una representación clara de los datos.