Статьи

Представляем библиотеку Python Matplotlib

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

Эта проблема начала уменьшаться после того, как я наткнулся на библиотеку Python, matplotlib , которая производит такие аккуратные графики. Как упоминалось на сайте библиотеки:

matplotlib — это библиотека 2D-черчения Python, которая генерирует показатели качества публикаций в различных печатных форматах и ​​интерактивных средах на разных платформах. matplotlib можно использовать в сценариях Python, оболочке Python и ipython (аля MATLAB ® * или Mathematica ® ), серверах веб-приложений и шести наборах инструментов графического интерфейса пользователя. matplotlib старается сделать легкие вещи легкими, а matplotlib возможными. Вы можете создавать графики, гистограммы, спектры мощности, гистограммы, диаграммы ошибок, диаграммы рассеяния и т. Д. С помощью всего лишь нескольких строк кода.

В этом уроке я покажу вам, как установить matplotlib , а затем расскажу о некоторых примерах.

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

  • питон
    Учитесь кодировать с Python
    Дерек Дженсен
  • питон
    Обработка данных с помощью Python
    Дерек Дженсен

Установка 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’)

В этом случае линия графика будет выглядеть следующим образом:

Линейный участок

Точечный график — это график, который показывает взаимосвязь между двумя наборами данных, например взаимосвязь между возрастом и ростом. В этом разделе я покажу вам, как мы можем нарисовать 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.