Crear gráficos con diferentes escalas

Beginner

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

Introducción

En este laboratorio, aprenderá a crear gráficos con diferentes escalas en Python utilizando Matplotlib. Específicamente, aprenderá a crear dos gráficos en los mismos ejes con diferentes escalas izquierda y derecha.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Importar las bibliotecas necesarias

Antes de comenzar, importemos las bibliotecas necesarias. En este tutorial, usaremos Matplotlib y NumPy.

import matplotlib.pyplot as plt
import numpy as np

Crear algunos datos ficticios

A continuación, crearemos algunos datos ficticios para utilizar en nuestros gráficos. Usaremos numpy.arange para crear una matriz de valores que van desde 0,01 hasta 10,0 con un paso de 0,01. Luego usaremos numpy.exp y numpy.sin para crear dos conjuntos de datos.

## Create some mock data
t = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)
data2 = np.sin(2 * np.pi * t)

Crear el gráfico

Ahora que tenemos nuestros datos, podemos crear nuestro gráfico. Empezaremos creando un objeto de ejes usando matplotlib.pyplot.subplots(). Luego graficaremos nuestro primer conjunto de datos en este objeto de ejes y pondremos el color de la etiqueta en rojo.

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('tiempo (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

A continuación, instanciaremos un segundo objeto de ejes que comparta el mismo eje x que el primer objeto de ejes usando el método ax1.twinx(). Luego graficaremos nuestro segundo conjunto de datos en este nuevo objeto de ejes y pondremos el color de la etiqueta en azul.

ax2 = ax1.twinx()

color = 'tab:blue'
ax2.set_ylabel('sin', color=color)
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

Finalmente, ajustaremos el diseño de nuestro gráfico usando el método fig.tight_layout() y lo mostraremos usando matplotlib.pyplot.show().

fig.tight_layout()
plt.show()

Revisar el gráfico

Tómese un momento para revisar el gráfico que se creó. Observe cómo los dos conjuntos de datos tienen diferentes escalas en el eje y. El primer conjunto de datos se grafica en rojo y tiene una escala en el lado izquierdo del gráfico, mientras que el segundo conjunto de datos se grafica en azul y tiene una escala en el lado derecho del gráfico.

Resumen

¡Felicidades! Has aprendido cómo crear gráficos con diferentes escalas en Python usando Matplotlib. Específicamente, has aprendido cómo crear dos gráficos en los mismos ejes con escalas izquierda y derecha diferentes al usar dos ejes diferentes que comparten el mismo eje x. Puedes usar formatters y localizadores de matplotlib.ticker separados según sea necesario ya que los dos ejes son independientes.