Представляем библиотеку Matplotlib от Python
Как исследователь, который регулярно пишет публикации, я часто сталкиваюсь с проблемой составления аккуратных графиков. Это не всегда было легко для меня, и я должен был использовать доступные инструменты наилучшим образом, но я не был удовлетворен графиками, которые я создавал большую часть времени. Я всегда удивлялся, как другие исследователи строят свои аккуратные графики! Эта проблема начала уменьшаться после того, как я наткнулся на библиотеку Python matplotlib, которая создает такие аккуратные графики.
Как уже упоминалось на веб-сайте библиотеки: matplotlib - это библиотека построения 2D-графиков на python, которая позволяет получать показатели качества публикаций в различных печатных форматах и интерактивных средах на разных платформах. matplotlib можно использовать в скриптах python, оболочках python и ipython (ala MATLAB или Mathematica), серверах веб-приложений и шести наборах инструментов графического интерфейса пользователя.
Matplotlib пытается сделать простые вещи легкими, а сложные - возможными. Вы можете создавать графики, гистограммы, спектры мощности, столбчатые диаграммы, диаграммы ошибок, диаграммы рассеяния и т. д. тк. всего с помощью нескольких строк кода. В этом руководстве я собираюсь показать вам, как установить matplotlib, а затем я покажу вам несколько примеров.
Установка matplotlib
Установка matplotlib очень проста. В настоящее время я работаю на компьютере под управлением macOS, поэтому я покажу вам, как установить библиотеку в эту операционную систему. Пожалуйста, смотрите страницу установки matplotlib для получения дополнительной информации об установке matplotlib в других операционных системах.
Matplotlib можно установить, выполнив следующие команды в вашем терминале (я собираюсь использовать pip, но вы можете использовать другие инструменты):
curl -O https://bootstrap.pypa.io/get-pip.py python get-pip.py pip install matplotlib
Теперь у вас есть matplo tlib запущен. Вот так просто!
Рисование базовых графиков
Давайте теперь рассмотрим несколько примеров использования matplotlib. Первый набор примеров будет посвящен рисованию некоторых базовых графиков.
Линейный график
Давайте рассмотрим простой пример построения линейного графика с помощью matplotlib. В этом случае мы собираемся использовать matplotlib. pyplot, который предоставляет платформу построения графиков, подобную MATLAB. Другими словами, он предоставляет набор функций командного стиля, которые позволяют matplotlib работать подобно MATLAB.
Допустим, мы хотели построить линию для следующего набора точек:
y = (54, 67, 98, 78, 45) x = (4,8,13,17,20)
Это можно сделать с помощью следующего скрипта:
import matplotlib.pyplot as plt plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45]) plt.show()
Обратите внимание, что мы представили точки x и y в виде списков. В этом случае результат будет следующим:
Линия на рисунке выше - это линия по умолчанию, которая рисуется для нас с точки зрения формы и цвета. Мы можем настроить это at путем изменения формы и цвета линии с использованием некоторых символов (спецификаторов) из документации MATLAB plot. Итак, допустим, мы хотели нарисовать зеленую пунктирную линию с маркерами в виде ромбов. В данном случае нам нужны следующие спецификаторы: 'g--d'. В нашем приведенном выше скрипте мы размещаем спецификаторы следующим образом:
plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45],'g--d')
В этом случае построение линии рисунка будет выглядеть следующим образом:
Мы нарисовали простой линейный график, но нам нужно получить представление о том, что представляют собой данные. Давайте изменим это, добавив заголовок и метки по осям x и y. Мы будем использовать следующие данные, которые показывают среднее распределение осадков в Нью-Йорке.
rainfall = [83, 81, 97, 104, 107, 91, 102, 102, 102, 79,102,91] month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
Давайте построим линию для приведенных выше данных.
import matplotlib.pyplot as plt month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] rainfall = [83, 81, 97, 104, 107, 91, 102, 102, 102, 79,102,91] plt.plot(month, rainfall) plt.xlabel("Month") plt.ylabel("Rainfall in mm ") plt.title("Average Rainfall in New York") plt.show()
Получившаяся фигура выглядит следующим образом:
Точечный график
Точечная диаграмма - это график, который показывает взаимосвязь между двумя наборами данных, например, взаимосвязь между возрастом и ростом. В этом разделе я собираюсь показать вам, как мы можем нарисовать точечную диаграмму с помощью matplotlib.
Давайте возьмем два набора данных, x и y, для которых мы хотим найти их взаимосвязь (точечная диаграмма). :
y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54] x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
Точечную диаграмму можно нарисовать с помощью следующего скрипта:
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()
Результатом работы этого скрипта является:
Конечно, вы можете изменить цвет маркеров в дополнение к другим настройкам, как показано в документации. Давайте также добавим заголовок и метки к точечной диаграмме.
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.xlabel('x-axis') plt.ylabel('y-axis') plt.title(' A simple scatter plot') plt.scatter(x,y) plt.show()
Теперь фигура выглядит следующим образом:
Вы также можете изменить цвет маркеров и добавить сетку.
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.xlabel('x-axis') plt.ylabel('y-axis') plt.title(' A simple scatter plot') plt.grid(True) plt.scatter(x,y, c= 'green') plt.show()
Теперь фигура выглядит следующим образом:
Гистограммы
Гистограмма - это график, который отображает частоту данных с помощью столбцов, где числа сгруппированы в диапазоны. Другими словами, частота каждого элемента данных в списке отображается с помощью гистограммы. Сгруппированные числа в виде диапазонов называются ячейками.
Давайте рассмотрим пример, чтобы лучше понять это. Допустим, список данных, для которых мы хотим найти гистограмму, выглядит следующим образом:
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, который мы можем использовать для отображения гистограммы для приведенных выше данных, выглядит следующим образом:
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.xlabel('X-Axis') plt.ylabel('Y-Axis') plt.title('A simple Histogram') plt.show()
Когда вы запустите скрипт, у вас должно получиться что-то похожее на следующий график (гистограмму):
Конечно, существует больше параметров для функции hist(), как показано в документации.
Вывод
Как мы видели в этом руководстве, Python может быть расширен для выполнения интересных функций. выполняйте задачи с использованием сторонних библиотек. Я показал пример такой библиотеки, а именно matplotlib.
Как я упоминал во введении к этому руководству, создание аккуратных графиков было для меня непростой задачей, особенно когда я хотел представить такие графики в научных публикациях. matplotlib дал решение этой проблемы, потому что вы можете не только легко создавать красивые графики, но и иметь контроль (т. е. параметры) над такими графиками, поскольку вы используете язык программирования для их генерации - в нашем случае Python. .