Posicionamiento de Títulos de Gráficos en Matplotlib

MatplotlibMatplotlibBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo posicionar títulos en gráficos creados con Matplotlib. Los títulos de los gráficos ayudan a los espectadores a entender qué información transmite una visualización. Matplotlib ofrece varias opciones para posicionar estos títulos: centrado (el valor predeterminado), alineado a la izquierda, alineado a la derecha o con una posición vertical personalizada.

Al final de este laboratorio, podrás:

  • Crear un gráfico básico con un título centrado
  • Posicionar títulos a la izquierda o a la derecha de un gráfico
  • Crear un gráfico con el título en una posición personalizada
  • Utilizar diferentes métodos para ajustar la posición del título

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedPlottingGroup(["Advanced Plotting"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlotCustomizationGroup(["Plot Customization"]) matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") matplotlib/AdvancedPlottingGroup -.-> matplotlib/subplots("Subplots") matplotlib/PlotCustomizationGroup -.-> matplotlib/titles_labels("Adding Titles and Labels") matplotlib/AdvancedTopicsGroup -.-> matplotlib/matplotlib_config("Customizing Matplotlib Configurations") subgraph Lab Skills matplotlib/line_plots -.-> lab-48998{{"Posicionamiento de Títulos de Gráficos en Matplotlib"}} matplotlib/subplots -.-> lab-48998{{"Posicionamiento de Títulos de Gráficos en Matplotlib"}} matplotlib/titles_labels -.-> lab-48998{{"Posicionamiento de Títulos de Gráficos en Matplotlib"}} matplotlib/matplotlib_config -.-> lab-48998{{"Posicionamiento de Títulos de Gráficos en Matplotlib"}} end

Gráficos Básicos con Posición de Título Predeterminada

En este paso, crearás un gráfico de línea simple y agregarás un título centrado, que es la posición predeterminada en Matplotlib.

Creación de un Jupyter Notebook

Después de que la máquina virtual (VM) haya terminado de iniciarse, haz clic en la esquina superior izquierda para cambiar a la pestaña Notebook y acceder al Jupyter Notebook.

click-notebook

Es posible que debas esperar unos segundos para que el Jupyter Notebook termine de cargarse. Debido a las limitaciones del Jupyter Notebook, la validación de las operaciones no se puede automatizar.

Si encuentras algún problema durante el laboratorio, no dudes en pedir ayuda a Labby. Por favor, brinda comentarios después de la sesión para que podamos resolver cualquier problema de inmediato.

Importación de Matplotlib

Ahora, comencemos importando la librería Matplotlib. En la primera celda de tu cuaderno, escribe el siguiente código y ejecútalo presionando Shift+Enter:

import matplotlib.pyplot as plt

Esto importa el módulo pyplot de Matplotlib y le asigna el alias plt, que es una convención común.

Creación de un Gráfico Simple

A continuación, creemos un gráfico de línea básico. En una nueva celda, escribe el siguiente código y ejecútalo:

plt.figure(figsize=(8, 5))  ## Create a figure with a specific size
plt.plot(range(10))         ## Plot numbers from 0 to 9
plt.grid(True)              ## Add a grid for better readability
plt.show()                  ## Display the plot

Deberías ver un gráfico de línea simple con valores del 0 al 9 en la salida.

line-plot

Adición de un Título Predeterminado (Centrado)

Ahora, agreguemos un título a nuestro gráfico. La posición predeterminada para un título es centrada en la parte superior del gráfico. En una nueva celda, escribe el siguiente código:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('My First Matplotlib Plot')  ## Add a centered title
plt.show()
line-plot-with-title

Ejecuta la celda y deberías ver el gráfico con un título centrado en la parte superior.

La función title() sin parámetros adicionales colocará el título en el centro, que es la posición predeterminada.

Posicionamiento de Títulos a la Izquierda y a la Derecha

Matplotlib te permite posicionar el título a la izquierda o a la derecha del gráfico utilizando el parámetro loc. En este paso, aprenderás cómo alinear los títulos a la izquierda y a la derecha de tus gráficos.

Creación de un Gráfico con un Título Alineado a la Izquierda

Vamos a crear un gráfico con el título posicionado en el lado izquierdo. En una nueva celda, escribe el siguiente código:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Left-Aligned Title', loc='left')  ## Position the title at the left
plt.show()
left-aligned-title

Ejecuta la celda. Observa cómo el título ahora aparece alineado con el borde izquierdo del gráfico, en lugar de estar centrado.

El parámetro loc en la función title() determina la posición horizontal del título. Al establecer loc='left', le estás indicando a Matplotlib que posicione el título en el lado izquierdo del gráfico.

Creación de un Gráfico con un Título Alineado a la Derecha

Ahora, vamos a crear otro gráfico con el título posicionado en el lado derecho. En una nueva celda, escribe el siguiente código:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Right-Aligned Title', loc='right')  ## Position the title at the right
plt.show()
right-aligned-title

Ejecuta la celda. El título ahora debería aparecer alineado con el borde derecho del gráfico.

Comparación de Diferentes Posiciones de Títulos

Vamos a crear una secuencia de tres gráficos para comparar las diferentes posiciones de los títulos (centro, izquierda y derecha). En una nueva celda, escribe el siguiente código:

## Create a figure with 3 subplots arranged horizontally
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

## Plot 1: Center-aligned title (default)
axes[0].plot(range(10))
axes[0].grid(True)
axes[0].set_title('Center Title')

## Plot 2: Left-aligned title
axes[1].plot(range(10))
axes[1].grid(True)
axes[1].set_title('Left Title', loc='left')

## Plot 3: Right-aligned title
axes[2].plot(range(10))
axes[2].grid(True)
axes[2].set_title('Right Title', loc='right')

plt.tight_layout()  ## Adjust spacing between subplots
plt.show()
three-title-positions

Ejecuta la celda para ver las tres posiciones de los títulos una al lado de la otra. Esta comparación visual te ayuda a entender cómo el parámetro loc afecta el posicionamiento del título.

Ten en cuenta que cuando trabajas con subgráficos, usamos el método set_title() en los objetos de eje individuales en lugar de la función global plt.title().

Posicionamiento Vertical Personalizado de Títulos

A veces, es posible que desees ajustar la posición vertical de tu título. En este paso, aprenderás cómo controlar manualmente la posición vertical (eje y) de los títulos de tus gráficos.

Comprensión de la Posición en el Eje Y de los Títulos

La posición vertical de un título se puede ajustar utilizando el parámetro y en la función title(). El parámetro y acepta valores en coordenadas normalizadas, donde:

  • y = 1.0 (valor predeterminado) coloca el título en la parte superior del gráfico.
  • y > 1.0 coloca el título por encima de la parte superior del gráfico.
  • y < 1.0 coloca el título por debajo de la parte superior del gráfico, acercándolo al contenido del gráfico.

Creación de un Gráfico con una Posición en el Eje Y Personalizada para el Título

Vamos a crear un gráfico con el título posicionado más alto que la posición predeterminada. En una nueva celda, escribe el siguiente código:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Higher Title Position', y=1.1)  ## Position the title higher
plt.show()

Ejecuta la celda. Observa cómo el título ahora aparece ligeramente más alto por encima del gráfico en comparación con la posición predeterminada.

Ahora, vamos a crear un gráfico con el título posicionado más bajo que la posición predeterminada:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Lower Title Position', y=0.9)  ## Position the title lower
plt.show()

Ejecuta la celda. El título ahora debería aparecer más cerca del contenido del gráfico.

Comparación de Diferentes Posiciones en el Eje Y

Vamos a crear múltiples gráficos uno al lado del otro para comparar diferentes posiciones verticales de los títulos:

## Create a figure with 3 subplots arranged horizontally
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

## Plot 1: Default Y-position
axes[0].plot(range(10))
axes[0].grid(True)
axes[0].set_title('Default Position (y=1.0)')

## Plot 2: Higher Y-position
axes[1].plot(range(10))
axes[1].grid(True)
axes[1].set_title('Higher Position', y=1.15)

## Plot 3: Lower Y-position
axes[2].plot(range(10))
axes[2].grid(True)
axes[2].set_title('Lower Position', y=0.85)

plt.tight_layout()  ## Adjust spacing between subplots
plt.show()

Ejecuta la celda para ver las tres posiciones verticales una al lado de la otra. Esta comparación te ayuda a entender cómo el parámetro y afecta la posición vertical del título.

Combinación del Posicionamiento Horizontal y Vertical

Puedes combinar el parámetro loc (para la alineación horizontal) con el parámetro y (para la posición vertical) para colocar tu título exactamente donde lo desees:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Custom Positioned Title', loc='right', y=1.1)  ## Right-aligned and higher
plt.show()

Ejecuta la celda. El título ahora debería aparecer alineado con el borde derecho del gráfico y posicionado más alto que la posición predeterminada.

Posicionamiento Avanzado de Títulos con Subgráficos

En este paso, aprenderás técnicas avanzadas para el posicionamiento de títulos cuando trabajes con diseños de subgráficos y objetos de ejes. También aprenderás cómo usar la función suptitle() para agregar un título general a una figura con múltiples subgráficos.

Creación de una Figura con Subgráficos y Títulos Individuales

Vamos a crear una cuadrícula de subgráficos de 2x2, cada uno con su propio título posicionado de manera diferente:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data and set titles with different positions for each subplot
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)

## Top-left subplot: Default centered title
axes[0].set_title('Default (Centered)')

## Top-right subplot: Left-aligned title
axes[1].set_title('Left-Aligned', loc='left')

## Bottom-left subplot: Right-aligned title
axes[2].set_title('Right-Aligned', loc='right')

## Bottom-right subplot: Custom positioned title
axes[3].set_title('Custom Position', y=0.85, loc='center')

## Add spacing between subplots
plt.tight_layout()
plt.show()

Ejecuta la celda. Deberías ver cuatro subgráficos, cada uno con un título posicionado de manera diferente.

Agregar un Título a Nivel de Figura con suptitle()

Cuando trabajas con múltiples subgráficos, es posible que desees agregar un título general para toda la figura. Esto se puede hacer utilizando la función suptitle():

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data on each subplot
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)
    ax.set_title(f'Subplot {i+1}')

## Add an overall title to the figure
fig.suptitle('Multiple Subplots with an Overall Title', fontsize=16)

## Add spacing between subplots
plt.tight_layout()
## Add top spacing for the suptitle
plt.subplots_adjust(top=0.9)
plt.show()

Ejecuta la celda. Deberías ver cuatro subgráficos, cada uno con su propio título, y un título general para la figura en la parte superior.

Combinación de Títulos de Ejes y Títulos de Figura

Puedes combinar títulos individuales de subgráficos con un título general de figura:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Plot data on each subplot with different title positions
axes[0, 0].plot(range(10))
axes[0, 0].grid(True)
axes[0, 0].set_title('Centered Title', loc='center')

axes[0, 1].plot(range(10))
axes[0, 1].grid(True)
axes[0, 1].set_title('Left-Aligned Title', loc='left')

axes[1, 0].plot(range(10))
axes[1, 0].grid(True)
axes[1, 0].set_title('Right-Aligned Title', loc='right')

axes[1, 1].plot(range(10))
axes[1, 1].grid(True)
axes[1, 1].set_title('Lower Title', y=0.85)

## Add an overall title to the figure
fig.suptitle('Advanced Title Positioning Demo', fontsize=16)

## Add spacing between subplots
plt.tight_layout()
## Add top spacing for the suptitle
plt.subplots_adjust(top=0.9)
plt.show()

Ejecuta la celda. Deberías ver una figura con cuatro subgráficos, cada uno con un título posicionado de manera diferente, y un título general en la parte superior de la figura.

La función suptitle() es útil para agregar un título principal que describa toda la figura, mientras que las llamadas individuales a set_title() en objetos de ejes agregan títulos más específicos a cada subgráfico.

Posicionamiento Global de Títulos con RCParams

En este último paso, aprenderás cómo utilizar los parámetros de configuración en tiempo de ejecución (RCParams) de Matplotlib para establecer valores predeterminados globales para el posicionamiento de títulos. Esto es útil cuando deseas que todos los gráficos en tu cuaderno o script utilicen un posicionamiento de títulos consistente sin tener que especificarlo para cada gráfico individualmente.

Comprensión de los RCParams en Matplotlib

El comportamiento de Matplotlib se puede personalizar utilizando una variable similar a un diccionario llamada rcParams. Esto te permite establecer valores predeterminados globales para varias propiedades, incluyendo el posicionamiento de títulos.

Establecimiento del Posicionamiento Global de Títulos con rcParams

Vamos a establecer valores predeterminados globales para el posicionamiento de títulos y luego crear algunos gráficos que utilizarán automáticamente estas configuraciones:

## View the current default values
print("Default title y position:", plt.rcParams['axes.titley'])
print("Default title padding:", plt.rcParams['axes.titlepad'])

Ejecuta la celda para ver los valores predeterminados. Ahora, vamos a modificar estas configuraciones:

## Set new global defaults for title positioning
plt.rcParams['axes.titley'] = 1.05     ## Set title y position higher
plt.rcParams['axes.titlepad'] = 10     ## Set padding between title and plot
plt.rcParams['axes.titlelocation'] = 'left'  ## Set default alignment to left

## Create a plot that will use the new defaults
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('This Title Uses Global RCParams Settings')
plt.show()

Ejecuta la celda. Observa cómo el título se posiciona de acuerdo con las configuraciones globales que definimos, incluso aunque no especificamos ningún parámetro de posicionamiento en la función title().

Creación de Múltiples Gráficos con las Mismas Configuraciones

Vamos a crear varios gráficos que utilicen todas nuestras configuraciones globales:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data on each subplot with titles that use global settings
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)
    ax.set_title(f'Subplot {i+1} Using Global Settings')

plt.tight_layout()
plt.show()

Ejecuta la celda. Todos los títulos de los cuatro subgráficos deben estar posicionados de acuerdo con las configuraciones globales que definimos anteriormente.

Restablecimiento de los RCParams a los Valores Predeterminados

Si deseas restablecer los RCParams a sus valores predeterminados, puedes utilizar la función rcdefaults():

## Reset to default settings
plt.rcdefaults()

## Create a plot with default settings
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('This Title Uses Default Settings Again')
plt.show()

Ejecuta la celda. El título ahora debe estar posicionado utilizando las configuraciones predeterminadas de Matplotlib.

Cambios Temporales de los RCParams

Si deseas cambiar temporalmente los RCParams solo para una sección específica de tu código, puedes utilizar un gestor de contexto:

## Create a plot with default settings
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Default Settings')
plt.show()

## Temporarily change RCParams for just this section
with plt.rc_context({'axes.titlelocation': 'right', 'axes.titley': 1.1}):
    plt.figure(figsize=(8, 5))
    plt.plot(range(10))
    plt.grid(True)
    plt.title('Temporary Settings Change')
    plt.show()

## Create another plot that will use default settings again
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Back to Default Settings')
plt.show()

Ejecuta la celda. Deberías ver tres gráficos:

  1. El primero con el posicionamiento de título predeterminado.
  2. El segundo con el título alineado a la derecha y posicionado más alto (debido a las configuraciones temporales).
  3. El tercero con el posicionamiento de título predeterminado nuevamente (ya que las configuraciones temporales solo se aplicaron dentro del gestor de contexto).

Este enfoque te permite realizar cambios temporales en las configuraciones globales sin afectar el resto de tus gráficos.

Resumen

En este laboratorio, has aprendido cómo controlar el posicionamiento de los títulos de los gráficos en Matplotlib:

  • Posicionamiento Básico de Títulos: Has creado gráficos simples con títulos centrados utilizando el posicionamiento predeterminado.

  • Posicionamiento Horizontal: Has aprendido cómo alinear los títulos a la izquierda o a la derecha de un gráfico utilizando el parámetro loc.

  • Posicionamiento Vertical: Has descubierto cómo ajustar la posición vertical de los títulos utilizando el parámetro y, colocándolos más arriba o más abajo en relación con el gráfico.

  • Técnicas Avanzadas con Subgráficos: Has explorado cómo posicionar títulos en subgráficos individuales y cómo agregar un título general a la figura utilizando suptitle().

  • Configuración Global con RCParams: Has aprendido cómo establecer valores predeterminados globales para el posicionamiento de títulos utilizando los parámetros de configuración en tiempo de ejecución de Matplotlib, lo que permite un estilo consistente en múltiples gráficos.

Estas habilidades te ayudarán a crear visualizaciones de datos más profesionales y visualmente atractivas, donde los títulos se posicionen exactamente donde los desees. El posicionamiento de títulos es un aspecto pequeño pero importante de la visualización efectiva de datos, ya que ayuda a guiar la atención de tu audiencia y a mejorar la claridad general de tus gráficos.

Para una exploración adicional, considera experimentar con otras opciones de personalización de títulos, como propiedades de fuente, rotación y colores, para hacer que tus visualizaciones tengan aún más impacto.