Menu
CoddyTech

Фигуры и оси

Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 24 из 60.

В настоящем коде указывается график, на котором нужно рисовать. plt.subplots() возвращает две вещи: фигуру — изображение целиком — и оси — график внутри неё:

Схема: серый прямоугольник с надписью fig, изображение целиком, содержит синий прямоугольник с надписью ax — график. ax.set_title расположен над ним, ax.set_xlabel — под ним, ax.set_ylabel — слева от него, ax.plot рисует линию внутри

fig, ax = захватывает оба объекта. Затем всё происходит на 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()

Методы построения сохраняют свои имена: ax.plot, ax.scatter, ax.legend. Методы для текста получают префикс set_.

Зачем это нужно? Скоро в одной фигуре будет несколько графиков, и ax указывает, какой именно ты имеешь в виду. С этого момента каждый график начинается именно так.

challenge icon

Задание

Средне

В исходном коде семь филиалов библиотеки отображены с помощью функций plt: одна точка на каждый филиал. Перепиши его, используя форму ax:

  1. Начни с fig, ax = plt.subplots().
  2. Нарисуй точки, заголовок и обе подписи с помощью методов ax, используя те же тексты.
  3. Удали старые строки plt, оставив plt.show().

Диаграмма останется такой же; изменится только код. В отчёте исходного кода указано Drawn with fig and ax: no. В твоём отчёте должно быть:

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]

Попробуйте сами

import matplotlib.pyplot as plt

# По одному значению для каждого филиала городской библиотеки
hours = [30, 45, 38, 52, 24, 60, 41]
loans = [410, 690, 520, 800, 300, 930, 610]

# Перепишите этот график, используя fig, ax = plt.subplots() и методы ax
plt.scatter(hours, loans)
plt.title("Library Branches")
plt.xlabel("Hours open per week")
plt.ylabel("Loans per week")
plt.show()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Данные и графики

Потренируйтесь самостоятельно: Онлайн-компилятор Python