Menu
CoddyTech

Несколько графиков в одном

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

Фудтрак отслеживает количество клиентов и время их ожидания. Данные в разных единицах удобнее всего представить на двух диаграммах рядом друг с другом на одном рисунке:

Две диаграммы рядом: столбцы показывают количество клиентов с понедельника по пятницу, достигая 150 в пятницу, а линия показывает время ожидания в минутах, достигая 12 минут в пятницу

Загруженные дни, долгое ожидание: одного взгляда достаточно, чтобы понять ситуацию. plt.subplots(1, 2) создает 1 ряд из 2 графиков: axs[0] слева, а axs[1] справа:

days = ["Mon", "Tue", "Wed", "Thu", "Fri"]
customers = [60, 85, 70, 120, 150]
wait = [4, 6, 5, 9, 12]
fig, axs = plt.subplots(1, 2)
axs[0].bar(days, customers)
axs[0].set_title("Customers")
axs[1].plot(days, wait)
axs[1].set_title("Wait (min)")
plt.show()

Каждый из них — это полноценная диаграмма со знакомыми тебе методами. Сначала идут строки, как в фигуре: plt.subplots(2, 1) располагает их друг над другом.

challenge icon

Задание

Средне

Путешественник записал данные о восьми походах: пройденное расстояние в km и затраченное время в hours. Функция label(ax, title, xlabel, ylabel) из начального кода задаёт название одному графику. Построй два графика рядом:

  1. Слева: линия, показывающая расстояние в km (по вертикали) для каждого номера похода в hikes (по горизонтали).
  2. Справа: по одной точке на поход; расстояние по горизонтали, время по вертикали.
  3. Задай название каждому графику одним вызовом label, используя тексты ниже.

Твои графики должны выглядеть так, как этот пример из записей другого путешественника:

Два графика рядом: слева линия с названием Distance per Hike, по горизонтали Hike, по вертикали Distance (km); справа точки с названием Time vs Distance, по горизонтали Distance (km), по вертикали Time (h)

Тексты: Distance per Hike, Hike, Distance (km) слева; Time vs Distance, Distance (km), Time (h) справа. Твоя программа ничего не выводит.

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

import numpy as np
import matplotlib.pyplot as plt

hikes = np.arange(1, 9)
km = np.array([8.0, 12.5, 6.0, 15.0, 10.0, 18.5, 9.5, 14.0])
hours = np.array([2.5, 4.0, 2.0, 5.0, 3.5, 6.5, 3.0, 4.5])


# Задаёт заголовок и подписи осей для одного графика (ничего не возвращает)
def label(ax, title, xlabel, ylabel):
    ax.set_title(title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)


# Напишите свой код ниже

# Не изменяйте строку ниже
plt.show()
quiz iconПроверьте себя

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

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

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