Статьи

Как построить диаграммы в Python с Matplotlib

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

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

Давайте начнем!

Предпосылки

Библиотека, которую мы будем использовать в этом уроке для создания графиков, является matplotlib Python. В этом посте предполагается, что вы используете версию 3.0.3 . Чтобы установить его, выполните следующую команду pip в терминале.

 pip install matplotlib==3.0.3 

Чтобы проверить версию установленной вами библиотеки, выполните следующие команды в интерпретаторе Python.

 >>> import matplotlib >>> print(matplotlib.__version__) '3.0.3' 

Если вы используете записные книжки Jupyter, вы можете отобразить графики Matplotlib встроенными с помощью следующей магической команды .

 %matplotlib inline 

Пиплот и Пилаб: примечание

На начальных этапах разработки MATLAB Mathworks оказал влияние на Джона Хантера, создателя Matplotlib. Существует одно ключевое отличие между использованием команд в MATLAB и Python. В MATLAB все функции доступны на верхнем уровне. По сути, если вы импортировали что-либо из matplotlib.pylab , такие функции, как plot() , будут доступны для использования.

Эта функция была удобна для тех, кто привык к MATLAB. Однако в Python это может создать конфликт с другими функциями.

Поэтому рекомендуется использовать источник pyplot .

 from matplotlib import pyplot as plt 

Все функции, такие как plot() , доступны в pyplot . Вы можете использовать ту же функцию plt.plot() используя plt.plot() после импорта ранее.

Рассечение участка Matplotlib

Документация Matplotlib описывает анатомию сюжета , что очень важно для понимания различных особенностей библиотеки.


Источник

Основные части сюжета Matplotlib следующие:

  • Рисунок: Контейнер полного участка и его частей
  • Название: Название сюжета
  • Оси: Оси X и Y (на некоторых графиках также может быть третья ось!)
  • Легенда: содержит метки каждого сюжета

Каждый элемент сюжета можно манипулировать в Matplotlib, как мы увидим позже.

Без дальнейших проволочек, давайте создадим наш первый сюжет!

Создать участок

Создание сюжета не является сложной задачей. Сначала импортируйте модуль pyplot . Несмотря на то, что нет соглашения, оно обычно импортируется как более короткая форма & mdash plt . Используйте метод .plot() и предоставьте список чисел для создания графика. Затем используйте метод .show() для отображения графика.

 from matplotlib import pyplot as plt plt.plot([0,1,2,3,4]) plt.show() 

Ваш первый сюжет с matplotlib

Обратите внимание, что Matplotlib создает линейный график по умолчанию. Числа, предоставленные .plot() , интерпретируются как значения y для создания графика. Вот документация метода .plot() для дальнейшего изучения.

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

Настроить участок

Позвольте нам обсудить наиболее популярные настройки в вашем сюжете Matplotlib. Каждый из обсуждаемых здесь вариантов — это методы pyplot которые вы можете вызывать для установки параметров.

  • title : Устанавливает заголовок диаграммы, который передается в качестве аргумента.
  • ylabel : устанавливает метку оси Y. xlabel может использоваться для установки метки оси X.
  • yticks : устанавливает yticks для отображения на оси Y. xticks — соответствующая опция для отображения тиков на оси X.
  • legend : отображает легенду на сюжете. Аргумент loc метода .legend() устанавливает положение легенды на графике. best вариант для аргументов loc позволяет Matplotlib определять наименее навязчивое положение легенды на рисунке.

Давайте использовать эти опции в нашем сюжете.

 plt.plot([0,1,2,3,4], label='y = x') plt.title('Y = X Straight Line') plt.ylabel('Y Axis') plt.yticks([1,2,3,4]) plt.legend(loc = 'best') plt.show() 

Вот вывод кода выше. Обратите внимание, что на рисунке появился заголовок, ось Y помечена, число тиков на оси Y меньше, чем на оси X, и в левом верхнем углу отображается легенда.

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

Для этого дважды используйте метод .plot() с разными наборами данных. Вы можете установить метку для каждого линейного графика, используя аргумент .plot() метода .plot() чтобы сделать код короче.

 plt.plot([0,1,2,3,4], label='y = x') plt.plot([0,2,4,6,8], label='y = 2x') plt.title('Two Straight Lines') plt.legend(loc = 'best') plt.show() 

Далее, давайте попробуем создать сюжет другого типа. Чтобы создать точечный график точек на плоскости XY, используйте метод .scatter() .

 plt.scatter([1,2,3,4], [5,1,4,2]) plt.show() 

Вот как выглядит график рассеяния.

Ряд других сюжетов может быть создан на Matplotlib. Вы можете использовать метод .hist() для создания гистограммы . Вы можете добавить несколько графиков к рисунку, используя метод .subplot() . Вы даже можете создать векторный путь, используя модуль path pyplot .

Экспорт участков с Matplotlib

После изучения различных вариантов при создании графиков с помощью Matplotlib, следующим шагом будет экспорт созданных графиков. Чтобы сохранить фигуру как изображение, вы можете использовать метод .savefig() . Имя файла с путем к файлу должно быть указано в качестве аргумента для этого метода.

 plt.savefig('my_figure.png') 

Хотя документация для savefig перечисляет различные аргументы, два наиболее важных из них перечислены ниже:

  • dpi : этот аргумент используется для установки разрешения результирующего изображения в DPI (точек на дюйм).
  • transparent : если установлено значение True, фон рисунка прозрачен.

Хотя приведенный выше код сохраняет одну фигуру, вам может потребоваться сохранить несколько рисунков в одном файле. Matplotlib позволяет сохранять несколько рисунков в одном файле PDF с PdfPages класса PdfPages . Шаги для создания файла PDF с несколькими графиками перечислены ниже:

  • Сначала импортируйте класс PdfPages из matplotlib.backends.backend_pdf и инициализируйте его в пустой файл PDF.
  • Инициализируйте объект рисунка с помощью класса .figure() и создайте график. После создания графика используйте метод .savefig() класса PdfPages для сохранения рисунка.
  • После добавления всех рисунков закройте файл PDF с помощью .close() .

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

 from matplotlib.backends.backend_pdf import PdfPages pdf = PdfPages('multipage.pdf') fig1 = plt.figure() plt.plot([0,1,2,3,4]) plt.close() pdf.savefig(fig1) fig2 = plt.figure() plt.plot([0,2,4,6,8]) plt.close() pdf.savefig(fig2) pdf.close() 

Вывод

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

Как вы создаете графики с Python? Дайте нам знать в комментариях ниже.