Python отлично подходит для обработки данных. Очень часто наборы данных содержат переменные и множество других компонентов, сложных для восприятия. В таком случае на помощь приходит визуализация данных.
Визуализация – быстрый и простой способ сделать сложные данные понятными. Визуализация часто является обязательной частью анализа.
Данное руководство научит вас пользоваться 2D-библиотекой matplotlib. Она позволяет генерировать высококачественные линейные графики, гистограммы, столбчатые диаграммы, графики рассеяния и многое другое. Каждый тип графика предлагает новые возможности визуализации данных.
В руководстве речь пойдёт о визуализации данных Python с помощью matplotlib. В нём рассматриваются такие вопросы:
- Создание графика рассеяния;
- Добавление заголовка и легенды диаграммы;
- Пользовательская настройка графиков.
Требования
Для выполнения руководства нужно настроить локальную среду разработки. Все необходимые инструкции можно найти по ссылкам:
- Настройка локальной среды разработки для Python 3 в CentOS 7
- Настройка локальной среды разработки для Python 3 в Windows 10
- Настройка локальной среды разработки для Python 3 в Mac OS X
- Настройка локальной среды разработки для Python 3 в Ubuntu 16.04
1: Импорт matplotlib
Сначала нужно убедиться, что модуль matplotlib установлен. Для этого введите в командную строку:
python -c "import matplotlib"
Если модуль matplotlib уже установлен, команда будет выполнена успешно. Это значит, вы можете приступать к работе. В противном случае команда вернёт ошибку:
Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'
Это значит, вам нужно установить библиотеку с помощью pip:
pip install matplotlib
После этого нужно импортировать библиотеку в Python. Создайте сценарий (в руководстве он называется scatter.py) для импорта matplotlib. В руководстве будет использоваться только модуль pyplot; укажите это в сценарии:
import matplotlib.pyplot as plt
Чтобы ссылаться на модуль было удобнее, мы создали аббревиатуру plt.
2: Тестовые данные
Используйте сценарий scatter.py для создания тестовых данных. Для работы в 2D необходимы оси X и Y.
Предположим, владелец кофейни хочет установить отношение между среднестатистической погодой за год и общим количеством проданных чашек кофе со льдом. Пусть переменная X отображает общее количество чашек кофе со льдом за месяц, а Y – среднюю температуру за месяц (по Фаренгейту).
В сценарии Python создайте две переменные: 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]
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().
Убедитесь, что сценарий работает. Сохраните и запустите его:
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.
- marker: форма, по умолчанию круг (о).
Точка графика может иметь форму шестиугольника, звёздочки, треугольника и т.д. Также доступны различные цвета: синий, зелёный, красный, пурпурный и т.д. Для настройки цвета в HTML можно использовать числа в шестнадцатеричном коде.
Примечание: Списки маркеров и цветов можно найти в документации matplotlib.
Чтобы график было проще читать, увеличьте размер точки в три раза (s=60), смените стандартный синий на красный цвет(c=’r’), а форму точки на треугольник (marker=’^’).
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]
#график рассеяния
plt.scatter(X, Y, s=60, c='red', marker='^')
#диапазон осей
plt.xlim(0,1000)
plt.ylim(0,100)
#заголовки
plt.title('Relationship Between Temperature and Iced Coffee Sales')
#метки x и y
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
#отображение графика
plt.show()
6: Сохранение графика
Теперь запустите сценарий и просмотрите график с новыми настройками.
python scatter.py
Чтобы сохранить график, нажмите кнопку save (значок диска, расположенный в нижней панели инструментов). Имейте в виду, что изображение будет сохранено в PNG.
Заключение
Теперь вы умеете визуализировать данные Python с помощью библиотеки matplotlib, устанавливать пользовательские настройки для графиков, добавлять заголовки.