Escalas Fahrenheit y Celsius

PythonPythonBeginner
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

El propósito de este laboratorio es demostrar cómo mostrar dos escalas en los ejes y de la izquierda y de la derecha. Este ejemplo utiliza las escalas de Fahrenheit y Celsius. Utilizaremos una función de clausura para registrarse como devolución de llamada para actualizar el segundo eje según el primer eje.

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 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 sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

En primer lugar, necesitamos importar las bibliotecas numpy y matplotlib.pyplot.

import matplotlib.pyplot as plt
import numpy as np

Definir una función para convertir de Fahrenheit a Celsius

A continuación, definimos una función para convertir la temperatura en Fahrenheit a Celsius.

def fahrenheit2celsius(temp):
    """
    Devuelve la temperatura en Celsius dado una temperatura en Fahrenheit.
    """
    return (5. / 9.) * (temp - 32)

Definir una función para actualizar el segundo eje

Definiremos una función de clausura para registrarse como una devolución de llamada para actualizar el segundo eje según el primer eje.

def convert_ax_c_to_celsius(ax_f):
    """
    Actualiza el segundo eje según el primer eje.
    """
    y1, y2 = ax_f.get_ylim()
    ax_c.set_ylim(fahrenheit2celsius(y1), fahrenheit2celsius(y2))
    ax_c.figure.canvas.draw()

Crear la gráfica

Ahora, creamos una gráfica con dos ejes y utilizando la función subplots() de matplotlib.pyplot. También conectamos el evento ylim_changed del primer eje a la función convert_ax_c_to_celsius().

fig, ax_f = plt.subplots()
ax_c = ax_f.twinx()

ax_f.callbacks.connect("ylim_changed", convert_ax_c_to_celsius)

Graficar los datos

Graficamos los datos utilizando la función plot() del primer eje.

ax_f.plot(np.linspace(-40, 120, 100))

Establecer los límites y etiquetas de los ejes

Establecemos los límites del eje x en (0, 100), y las etiquetas y el título del eje y.

ax_f.set_xlim(0, 100)
ax_f.set_title('Two scales: Fahrenheit and Celsius')
ax_f.set_ylabel('Fahrenheit')
ax_c.set_ylabel('Celsius')

Mostrar la gráfica

Finalmente, mostramos la gráfica utilizando la función show() de matplotlib.pyplot.

plt.show()

Resumen

En este laboratorio, aprendimos cómo mostrar dos escalas en los ejes y de la izquierda y de la derecha utilizando Python Matplotlib. Utilizamos una función de clausura para registrarse como devolución de llamada y actualizar el segundo eje de acuerdo con el primer eje. Esto es útil cuando queremos graficar dos conjuntos de datos con diferentes unidades.