Как исследователь, который регулярно пишет публикации, я часто сталкиваюсь с проблемой создания аккуратных графиков. Это было не всегда легко для меня, и мне приходилось использовать доступные инструменты наилучшим образом, но я не был удовлетворен графиками, которые создавал большую часть времени. Я всегда удивлялся, как другие исследователи создавали свои аккуратные графики!
Эта проблема начала уменьшаться после того, как я наткнулся на библиотеку Python, matplotlib
, которая производит такие аккуратные графики. Как упоминалось на сайте библиотеки:
matplotlib
— это библиотека 2D-черчения Python, которая генерирует показатели качества публикаций в различных печатных форматах и интерактивных средах на разных платформах.matplotlib
можно использовать в сценариях Python, оболочке Python и ipython (аля MATLAB ® * или Mathematica ® ), серверах веб-приложений и шести наборах инструментов графического интерфейса пользователя.matplotlib
старается сделать легкие вещи легкими, аmatplotlib
возможными. Вы можете создавать графики, гистограммы, спектры мощности, гистограммы, диаграммы ошибок, диаграммы рассеяния и т. Д. С помощью всего лишь нескольких строк кода.
В этом уроке я покажу вам, как установить matplotlib
, а затем расскажу о некоторых примерах.
Если вам интересно глубже изучить Python и узнать, как использовать возможности Python для обработки данных, почему бы не проверить эти два курса:
Установка matplotlib
Установка matplotlib
очень проста. В настоящее время я работаю на компьютере Mac OS X, поэтому я покажу вам, как установить библиотеку в этой операционной системе. Пожалуйста, смотрите страницу установки matplotlib для получения дополнительной информации об установке matplotlib
в других операционных системах.
matplotlib
можно установить, выполнив следующие команды в вашем терминале (я собираюсь использовать pip , но вы можете использовать и другие инструменты ):
1
2
3
|
curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install matplotlib
|
Вот и все. Теперь у вас есть matplotlib
и работает. Просто так просто!
Рисование основных сюжетов
Давайте теперь посмотрим на некоторые примеры использования matplotlib
. Первый набор примеров будет посвящен рисованию некоторых основных сюжетов.
Линия Участок
Давайте рассмотрим простой пример рисования линейного графика с использованием matplotlib
. В этом случае мы будем использовать matplotlib.pyplot
, который обеспечивает MATLAB-подобную структуру построения графиков. Другими словами, он предоставляет набор функций в стиле команд, которые позволяют matplotlib
работать как MATLAB.
Допустим, мы хотели построить линию для следующего набора точек:
1
2
|
x = (4,8,13,17,20)
y = (54, 67, 98, 78, 45)
|
Это можно сделать с помощью следующего скрипта:
1
2
3
|
import matplotlib.pyplot as plt
plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45])
plt.show()
|
Обратите внимание, что мы представили точки x
и y
виде списков .
В этом случае результат будет следующим:
Линия на рисунке выше — это линия по умолчанию, которая рисуется для нас с точки зрения формы и цвета. Мы можем настроить это, изменив форму и цвет линии, используя некоторые символы (спецификаторы) из документации по графику MATLAB. Допустим, мы хотели нарисовать зеленую пунктирную линию с маркерами алмазов . Спецификаторы, которые нам нужны в этом случае: 'g--d'
. В нашем скрипте выше мы размещаем спецификаторы следующим образом:
1
|
plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45],’g—d’)
|
В этом случае линия графика будет выглядеть следующим образом:
Scatter Plot
Точечный график — это график, который показывает взаимосвязь между двумя наборами данных, например взаимосвязь между возрастом и ростом. В этом разделе я покажу вам, как мы можем нарисовать matplotlib
график, используя matplotlib
.
Давайте возьмем два набора данных, x
и y
, для которых мы хотим найти их взаимосвязь (точечная диаграмма):
1
2
|
x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]
|
Точечный график может быть нарисован с использованием следующего сценария:
1
2
3
4
5
|
import matplotlib.pyplot as plt
x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]
plt.scatter(x,y)
plt.show()
|
Результат этого сценария:
Конечно, вы можете изменить цвет маркеров в дополнение к другим настройкам, как показано в документации .
Гистограммы
Гистограмма — это график, который отображает частоту данных с использованием столбцов, где числа сгруппированы по диапазонам. Другими словами, частота каждого элемента данных в списке показана с помощью гистограммы. Сгруппированные числа в виде диапазонов называются ячейками . Давайте посмотрим на пример, чтобы понять это больше.
Допустим, список данных, для которых мы хотим найти гистограмму, выглядит следующим образом:
1
|
x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]
|
Скрипт Python, который мы можем использовать для отображения гистограммы для приведенных выше данных:
1
2
3
4
5
|
import matplotlib.pyplot as plt
x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]
num_bins = 6
n, bins, patches = plt.hist(x, num_bins, facecolor = ‘green’)
plt.show()
|
Когда вы запускаете скрипт, вы должны получить что-то похожее на следующий график (гистограмма):
Есть, конечно, больше параметров для функции hist()
, как показано в документации .
Дальнейшее чтение
Этот урок был поверхностным занятием для работы с графиками в Python. matplotlib
— это еще не matplotlib
, и вы можете делать много интересного с этой библиотекой.
Если вы хотите узнать больше о matplotlib
и увидеть другие типы фигур, которые вы можете создать с помощью этой библиотеки, одним из мест может быть раздел примеров на matplotlib
сайте matplotlib
. Есть также несколько интересных книг по этой теме, таких как Mastering matplotlib и Matplotlib Plotting Cookbook .
Вывод
Как мы видели в этом руководстве, Python можно расширить для выполнения интересных задач с помощью сторонних библиотек. Я показал пример такой библиотеки, а именно matplotlib
.
Как я упоминал во введении к этому уроку, создание аккуратных графиков для меня было непростой задачей, особенно когда вы хотите представить такие графики в научных публикациях. matplotlib
дал решение этой проблемы, потому что вы можете не только легко создавать красивые графы, но и иметь контроль (т.е. параметры) над такими графами, так как вы используете язык программирования для генерации ваших графов — в нашем случае Python.