Menu
CoddyTech

Диаграммы рассеяния

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

Десять комнатных растений: сколько часов солнца в день и насколько выросло каждое. Если соединить их линией, получится путаница. А если показать точками, проявится закономерность:

Два графика с одними и теми же десятью растениями: часы солнца отложены по горизонтали, рост — по вертикали. Слева plt.plot соединяет их зигзагообразной линией. Справа plt.scatter показывает точки, поднимающиеся вправо

plt.scatter(x, y) рисует по одной точке для каждой пары, без линий:

sun = [2, 6, 3, 8, 5, 1, 7, 4, 6, 3]
growth = [4, 10, 7, 12, 6, 2, 9, 8, 7, 3]
plt.scatter(sun, growth)
plt.xlabel("Sun (hours a day)")
plt.ylabel("Growth (cm)")
plt.show()

Больше солнца — больше роста. Диаграмма рассеяния показывает, как связаны два измерения отдельных образцов: первый взгляд на данные до того, как модель предсказывает одно по другому.

Для значений, расположенных по порядку, например дней недели, по-прежнему используется plt.plot.

challenge icon

Задание

Средне

Рыбак записал каждую пойманную рыбу в порядке улова: одна строка на каждую рыбу, сначала длина (см), затем вес (г). В начальном коде используется plt.plot, поэтому линия зигзагообразно соединяет точки и скрывает закономерность.

  1. Изобрази каждую рыбу отдельной точкой: длина по горизонтали, вес по вертикали.
  2. Не добавляй никаких линий.
  3. Оставь заголовок, подписи и plt.show().

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

Диаграмма рассеяния с заголовком Fish Catch: девять точек поднимаются от 18 см и 90 г до 42 см и 980 г, без линии

Твоя программа ничего не выводит. Coddy описывает твой график в выводе.

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

import numpy as np
import matplotlib.pyplot as plt

# Каждая строка — одна рыба в порядке вылова: длина (cm), вес (g)
fish = np.array([[22, 180], [30, 390], [25, 250], [35, 620],
                 [28, 330], [40, 870], [19, 120], [33, 510]])

# Исправьте график ниже
plt.plot(fish[:, 0], fish[:, 1])

# Не изменяйте строки ниже
plt.title("Fish Catch")
plt.xlabel("Length (cm)")
plt.ylabel("Weight (g)")
plt.show()
quiz iconПроверьте себя

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

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

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