Поиск по сайту:

Как отображать данные в Python 3 с помощью matplotlib


Введение

Python отлично подходит для обработки данных. Часто набор данных будет включать несколько переменных и множество экземпляров, что затрудняет понимание того, что происходит. Визуализация данных — это полезный способ помочь вам определить закономерности в ваших данных.

Например, предположим, что вы агент по недвижимости и пытаетесь понять взаимосвязь между возрастом дома и его продажной ценой. Если бы ваши данные включали 1 блок из 5 домов, было бы несложно понять, что происходит. Однако, скажем, вы хотите использовать данные всего города из 500 домов. Тогда будет довольно сложно понять, как возраст влияет на цену. Визуализация данных путем построения графика продажной цены в зависимости от возраста определенно могла бы пролить некоторый свет на взаимосвязь, которая существует между ними.

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

Мы будем использовать библиотеку 2D-графики, matplotlib, которая была первоначально написана Джоном Д. Хантером и с тех пор стала очень активным проектом сообщества разработчиков с открытым исходным кодом. Он позволяет создавать высококачественные линейные графики, точечные диаграммы, гистограммы, гистограммы и многое другое. Каждый график представляет данные по-своему, и часто бывает полезно попробовать различные типы графиков, прежде чем остановиться на наиболее информативном графике для ваших данных. Полезно помнить, что визуализация — это смесь искусства и науки.

Учитывая важность визуализации, в этом руководстве будет описано, как отображать данные в Python с помощью matplotlib. Мы создадим точечную диаграмму, используя небольшой набор данных, добавим к графикам такую информацию, как заголовки и легенды, и настроим графики, изменив внешний вид точек графика.

Когда вы закончите с этим учебным пособием, вы сможете отображать данные в Python!

Предпосылки

Для этого руководства у вас должен быть установлен Python 3, а также настроена локальная среда программирования на вашем компьютере. Если это не так, вы можете выполнить настройку, следуя соответствующему руководству по установке и настройке для вашей операционной системы.

Шаг 1 — Импорт matplotlib

Прежде чем мы начнем работать на Python, давайте дважды проверим, установлен ли модуль matplotlib. В командной строке проверьте наличие matplotlib, выполнив следующую команду:

  1. python -c "import matplotlib"

Если matplotlib установлен, эта команда завершится без ошибок, и мы готовы к работе. Если нет, вы получите сообщение об ошибке:

  1. Output
    Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'

Если вы получили сообщение об ошибке, загрузите библиотеку с помощью pip:

  1. pip install matplotlib

Теперь, когда matplotlib установлен, мы можем импортировать его в Python. Во-первых, давайте создадим скрипт, с которым мы будем работать в этом руководстве: scatter.py. Затем в нашем скрипте давайте импортируем matplotlib. Поскольку мы будем работать только с модулем построения графиков (pyplot), давайте укажем это при его импорте.

import matplotlib.pyplot as plt

Мы указываем модуль, который хотим импортировать, добавляя .pyplot в конец matplotlib. Чтобы упростить обращение к модулю в нашем скрипте, мы сокращаем его как plt. Теперь мы можем перейти к созданию и отображению наших данных.

Шаг 2 — Создание точек данных для построения

В нашем скрипте Python давайте создадим некоторые данные для работы. Мы работаем в 2D, поэтому нам понадобятся координаты X и Y для каждой из наших точек данных.

Чтобы лучше понять, как работает matplotlib, мы свяжем наши данные с возможным сценарием из реальной жизни. Представим, что мы владельцы кофейни и нас интересует связь между средней погодой в течение года и общим количеством покупок кофе со льдом. Наша переменная X будет общим количеством кофе со льдом, проданным за месяц, а наша переменная Y будет средней температурой в градусах Фаренгейта за каждый месяц.

В нашем сценарии Python мы создадим две переменные списка: X (общее количество проданных кофе со льдом) и Y (средняя температура). Каждый элемент в наших соответствующих списках будет представлять данные за каждый месяц (с января по декабрь). Например, в январе средняя температура составляла 32 градуса по Фаренгейту, а кофейня продала 590 кофе со льдом.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

Теперь, когда у нас есть данные, мы можем начать рисовать.

Шаг 3 — графические данные

Точечные диаграммы отлично подходят для определения взаимосвязи между двумя переменными, поэтому мы будем использовать этот тип диаграммы для нашего примера. Чтобы создать точечную диаграмму с помощью matplotlib, мы будем использовать функцию scatter(). Функция требует два аргумента, которые представляют значения координат X и Y.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)
plt.show()

Каждый раз, когда мы создаем график, мы также должны указать, что мы хотим, чтобы график отображался с помощью plt.show().

Прежде чем двигаться дальше, давайте проверим, работает ли наш скрипт. Сохраните скрипт и запустите его через командную строку:

  1. python scatter.py

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

Это окно отлично подходит для просмотра данных; он интерактивен и включает в себя несколько функций, таких как наведение для отображения меток и координат, увеличение или уменьшение масштаба и сохранение.

Шаг 4 — Добавление заголовков и меток

Теперь, когда мы знаем, что наш сценарий работает правильно, мы можем начать добавлять информацию к нашему графику. Чтобы было понятно, что представляют наши данные, давайте добавим заголовок и метки для каждой оси.

Мы начнем с добавления заголовка. Мы добавляем заголовок перед строкой plt.show() в нашем скрипте.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()

Затем добавьте метки для осей прямо под строкой plt.title:

...
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
...

Если мы сохраним наш скрипт и запустим его снова, теперь у нас должен быть обновленный график, который станет более информативным. Наш обновленный график должен выглядеть примерно так:

Шаг 5 — Настройка графика

Каждый набор данных, с которым мы работаем, будет уникальным, и важно иметь возможность настроить способ отображения нашей информации. Помните, что визуализация — это тоже искусство, так что проявите творческий подход! matplotlib включает в себя множество функций настройки, таких как различные цвета, точечные символы и размеры. В зависимости от наших потребностей, мы можем захотеть поиграть с разными масштабами, используя разные диапазоны для наших осей. Мы можем изменить параметры по умолчанию, указав новые диапазоны для осей, например:

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.xlim(0,1000)
plt.ylim(0,100)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()
...

Точки исходного графика выглядели немного маленькими, и синий цвет может быть не тем цветом, который нам нужен. Возможно, нам нужны треугольники вместо кругов для наших точек. Если мы хотим изменить фактический цвет/размер/форму точек, мы должны внести эти изменения в начальный вызов plt.scatter(). Мы изменим следующие параметры:

  • s: размер точки, по умолчанию=20
  • c: цвет, последовательность или последовательность цветов, по умолчанию=‘b’
  • маркер: символ точки, по умолчанию=‘o’

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

Чтобы наш график было легче читать, давайте утроим размер точек (s=60), изменим цвет на красный (c=r) и изменим символ в треугольник (marker=^). Мы изменим функцию plt.scatter():

plt.scatter(X, Y, s=60, c='red', marker='^')

Перед запуском нашего обновленного скрипта мы можем еще раз проверить правильность нашего кода. Обновленный скрипт для пользовательского сюжета должен выглядеть примерно так:

import matplotlib.pyplot as plt


X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

#scatter plot
plt.scatter(X, Y, s=60, c='red', marker='^')

#change axes ranges
plt.xlim(0,1000)
plt.ylim(0,100)

#add title
plt.title('Relationship Between Temperature and Iced Coffee Sales')

#add x and y labels
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')

#show plot
plt.show()

Не забудьте сохранить свой сценарий, прежде чем переходить к шагу 6.

Шаг 6 — Сохранение графика

Теперь, когда мы закончили наш код, давайте запустим его, чтобы увидеть наш новый настроенный график.

  1. python scatter.py

Теперь должно открыться окно, отображающее наш график:

Затем сохраните график, нажав кнопку сохранения, которая представляет собой значок диска, расположенный на нижней панели инструментов. Имейте в виду, что изображение будет сохранено в формате PNG, а не в виде интерактивного графика. Теперь у вас есть собственная настроенная диаграмма рассеяния, поздравляем!

Заключение

В этом руководстве вы узнали, как отображать данные с помощью matplotlib в Python. Теперь вы можете визуализировать данные и настраивать графики.

Чтобы продолжить практиковаться с matplotlib, вы можете следовать нашему руководству «Как построить график частот слов с помощью matplotlib с Python 3».