Menu
CoddyTech

Figuras y ejes

Parte de la sección Datos y gráficos del Journey de Machine Learning de Coddy. Lección 24 de 60.

El código real nombra el gráfico en el que dibuja. plt.subplots() devuelve dos cosas: la figura, la imagen completa, y los ejes, el gráfico que contiene:

Un diagrama: un recuadro gris marcado como fig, la imagen completa, contiene un recuadro azul marcado como ax, el gráfico. ax.set_title se sitúa encima, ax.set_xlabel debajo, ax.set_ylabel a su izquierda, ax.plot dibuja la línea dentro

fig, ax = captura ambos. Después, todo ocurre en ax:

years = [2021, 2022, 2023, 2024]
members = [35, 48, 61, 59]
fig, ax = plt.subplots()
ax.plot(years, members)
ax.set_title("Club Members")
ax.set_xlabel("Year")
ax.set_ylabel("Members")
plt.show()

Los métodos de dibujo conservan sus nombres: ax.plot, ax.scatter, ax.legend. Los métodos de texto llevan set_.

¿Para qué molestarse? Pronto una figura contendrá varios gráficos, y ax indica a cuál te refieres. A partir de ahora, todos los gráficos empiezan así.

challenge icon

Desafío

Intermedio

El código inicial representa las siete sucursales de una biblioteca con funciones de plt: un punto por sucursal. Reescríbelo usando la forma ax:

  1. Empieza con fig, ax = plt.subplots().
  2. Dibuja los puntos, el título y ambas etiquetas con métodos de ax, usando los mismos textos.
  3. Elimina las líneas antiguas de plt, pero conserva plt.show().

El gráfico se mantiene igual; solo cambia el código. El informe del código inicial dice Drawn with fig and ax: no. El tuyo debería decir:

Charts drawn: 1
Drawn with fig and ax: yes
Title: Library Branches
X label: Hours open per week
Y label: Loans per week
Lines: 0
Dots: 7
Across (x): [30, 45, 38, 52, 24, 60, 41]
Up (y): [410, 690, 520, 800, 300, 930, 610]

Pruébalo tú mismo

import matplotlib.pyplot as plt

# Un valor por cada sucursal de la biblioteca municipal
hours = [30, 45, 38, 52, 24, 60, 41]
loans = [410, 690, 520, 800, 300, 930, 610]

# Reescribe este gráfico con fig, ax = plt.subplots() y los métodos de ax
plt.scatter(hours, loans)
plt.title("Library Branches")
plt.xlabel("Hours open per week")
plt.ylabel("Loans per week")
plt.show()
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Datos y gráficos

Practica por tu cuenta: Compilador de Python online