Matplotlib. Урок 1. Быстрый старт
Первый урок из цикла, посвященному библиотеке для визуализации данных Matplotlib. В рамках данного урока будут рассмотрены такие вопросы как: установка библиотеки, построение линейного графика, несколько графиков на одном и на разных полях, построение диаграммы для категориальных данных и обзор основных элементов графика.
Установка
Варианты установки Matplotlib
Установка Matplotlib через менеджер pip
Второй вариант – это воспользоваться менеджером pip и установить Matplotlib самостоятельно, для этого введите в командной строке вашей операционной системы следующие команды:
Проверка установки
Для проверки того, что все у вас установилось правильно, запустите интерпретатор Python и введите в нем следующее:
После этого можете проверить версию библиотеки (она скорее всего будет отличаться от приведенной ниже):
Быстрый старт
Если вы работаете в Jupyter Notebook для того, чтобы получать графики рядом с ячейками с кодом необходимо выполнить специальную magic команду после того, как импортируете matplotlib ::
Результат работы выглядеть будет так, как показано на рисунке ниже.
Пример, аналогичный тому, что представлен на рисунке выше, для отдельного Python файла будет выглядеть так:
В результате получите график в отдельном окне.
Далее мы не будем останавливаться на особенностях использования magic команды, просто запомните, если вы используете Jupyter notebook при работе с Matplotlib вам обязательно нужно включить %matplotlib inline.
Построение графика
Для начал построим простую линейную зависимость, дадим нашему графику название, подпишем оси и отобразим сетку. Код программы:
В результате получим следующий график:
Несколько графиков на одном поле
Построим несколько графиков на одном поле, для этого добавим квадратичную зависимость:
В приведенном примере в функцию plot() последовательно передаются два массива для построения первого графика и два массива для построения второго, при этом, как вы можете заметить, для обоих графиков массив значений независимой переменной x один и то же.
Несколько разделенных полей с графиками
Третья, довольно часто встречающаяся задача – это отобразить два или более различных поля, на которых будет отображено по одному или более графику.
Построим уже известные нам две зависимость на разных полях.
Здесь мы воспользовались новыми функциями:
figure() – функция для задания глобальных параметров отображения графиков. В нее, в качестве аргумента, мы передаем кортеж, определяющий размер общего поля.
subplot() – функция для задания местоположения поля с графиком. Существует несколько способов задания областей для вывода через функцию subplot() мы воспользовались следующим: первый аргумент – количество строк, второй – столбцов в формируемом поле, третий – индекс (номер поля, считаем сверху вниз, слева направо).
Построение диаграммы для категориальных данных
До этого мы строили графики по численным данным, т.е. зависимая и независимая переменные имели числовой тип. На практике довольно часто приходится работать с данными нечисловой природы – имена людей, название фруктов, и т.п.
Построим диаграмму на которой будет отображаться количество фруктов в магазине:
К этому моменту, если вы самостоятельно попробовали запустить приведенные выше примеры, у вас уже должно сформировать некоторое понимание того, как осуществляется работа с этой библиотекой.
Основные элементы графика
Корневым элементом при построения графиков в системе Matplotlib является Фигура ( Figure ). Все, что нарисовано на рисунке выше является элементами фигуры. Рассмотрим ее составляющие более подробно.
На рисунке представлены два графика – линейный и точечный. Matplotlib предоставляет огромное количество различных настроек, которые можно использовать для того, чтобы придать графику вид, который вам нужен: цвет, толщина и тип линии, стиль линии и многое другое, все это мы рассмотрим в ближайших статьях.
Вторым, после непосредственно самого графика, по важности элементом фигуры являются оси. Для каждой оси можно задать метку (подпись), основные ( major ) и дополнительные ( minor ) тики, их подписи, размер и толщину, также можно задать диапазоны по каждой из осей.
Следующими элементами фигуры, которые значительно повышают информативность графика являются сетка и легенда. Сетка также может быть основной ( major ) и дополнительной ( minor ). Каждому типу сетки можно задавать цвет, толщину линии и тип. Для отображения сетки и легенды используются соответствующие команды.
Ниже представлен код, с помощью которого была построена фигура, изображенная на рисунке:
Если в данный момент вам многое кажется непонятным – не переживайте, далее мы разберем подробно особенности настройки и использования всех элементов представленных на поле с графиками.
P.S.
Как установить Matplotlib для Anaconda 1.9.1 и Python 3.3.4?
Я настраиваю Anaconda 1.9.1 вместе с Python 3.3.4 и не могу настроить Matplotlib для среды anaconda, когда пытаюсь добавить пакет с помощью Pycharm. Я также пытался установить файл Matplotlib.exe, который я скачал с его сайта. Я не могу изменить каталог установки в этом случае. Я хотел бы знать, что есть способ решить эту проблему.
3 ответа
Если вы используете anaconda, вашей средой по умолчанию является Python 2.7. Вам нужно создать новую среду и установить там matplotlib.
В командной строке сделайте следующее (ответив «да» на вопросы):
Вы должны иметь возможность импортировать matplotlib при запуске сервера ноутбука.
Я не знаю, как работает Pycharm, но я предполагаю, что вам придется сказать ему, чтобы искать правильный питон, который вы хотите использовать. В этом случае это будет что-то вроде: C: / Users // anaconda / envs / mpl33. В любом случае в командной строке должен отображаться путь при активации среды.
После того, как вы активировали свою среду, вы можете установить больше таких пакетов:
Вы можете указать конкретные номера версий пакетов, например первую команду, или просто принять последнюю доступную версию (по умолчанию)
Предыстория: Недавно я столкнулся с той же проблемой, когда matplotlib не был установлен по умолчанию компанией anaconda, когда я добавил полный пакет python 3 env, хотя он и предназначен для этого. Вышеуказанная строка решила это для меня; он дал мне следующие предупреждения, поэтому кажется вероятным, что две разные доступные версии привели к тому, что он изначально не установил ни одну. Однако это позволило мне выбрать тот, который я хотел, и тогда все работало отлично.
Как установить библиотеку matplotlib в Python для построения графиков
Matplotlib – это библиотека Python с открытым исходным кодом, которая используется для построения графиков. Первоначально matplotlib был задуман Джоном Д. Хантером в 2002 году. Версия была выпущена в 2003 году, а последняя версия 3.1.1 выпущена 1 июля 2019 года.
Представляет данные в графической форме. Графическая форма может быть точечной диаграммой, гистограммой, столбчатой, диаграммой области, круговой диаграммой и т. д. Библиотека matplotlib обычно используется для визуализации данных. Визуализация данных позволяет нам принять эффективное решение для организации.
Рассмотрим как установить библиотеку matplotlib в Python.
Установка matplotlib
Прежде чем работать с библиотекой matplotlib, нам необходимо установить ее в Python. Давайте рассмотрим следующий метод установки библиотеки matplotlib.
Использование дистрибутива Anaconda для Python
Дистрибутив Anaconda – это самый простой способ установить библиотеку matplotlib, поскольку в него она уже предварительно включена. Так что дальнейшая установка нам не нужна.
Установка Matplotlib с помощью conda
Мы также можем установить matplotlib, используя приглашение conda. Откройте приглашение conda и введите следующую команду.
Использование команды pip
Пакет также можно использовать для установки библиотеки matplotlib. Откройте командную строку, введите следующую команду.
Подтвердите установку
Installation¶
Installing an official release¶
Matplotlib releases are available as wheel packages for macOS, Windows and Linux on PyPI. Install it using pip :
The following backends work out of the box: Agg, ps, pdf, svg
Python is typically shipped with tk bindings which are used by TkAgg.
Third-party distributions¶
Various third-parties provide Matplotlib for their environments.
Conda packages¶
Matplotlib is available both via the anaconda main channel
as well as via the conda-forge community channel
Python distributions¶
Matplotlib is part of major Python distributions:
Linux package manager¶
If you are using the Python version that comes with your Linux distribution, you can install Matplotlib via your package manager, e.g.:
Debian / Ubuntu: sudo apt-get install python3-matplotlib
Fedora: sudo dnf install python3-matplotlib
Red Hat: sudo yum install python3-matplotlib
Installing from source¶
If you are interested in contributing to Matplotlib development, running the latest source code, or just like to build everything yourself, it is not difficult to build Matplotlib from source.
The easiest way to get the latest development version to start contributing is to go to the git repository and run:
If you’re developing, it’s better to do it in editable mode. The reason why is that pytest’s test discovery only works for Matplotlib if installation is done this way. Also, editable mode allows your code changes to be instantly propagated to your library code without reinstalling (though you will have to restart your python process / kernel):
If you’re not developing, it can be installed from the source directory with a simple (just replace the last step):
To run the tests you will need to install some additional dependencies:
Then, if you want to update your Matplotlib at any time, just do:
There is more information on using git in the developer docs.
The following instructions in this section are for very custom installations of Matplotlib. Proceed with caution because these instructions may result in your build producing unexpected behavior and/or causing local testing to fail.
If you would like to build from a tarball, grab the latest tar.gz release file from the PyPI files page.
We provide a mplsetup.cfg file which you can use to customize the build process. For example, which default backend to use, whether some of the optional libraries that Matplotlib ships with are installed, and so on. This file will be particularly useful to those packaging Matplotlib.
If you are building your own Matplotlib wheels (or sdists) on Windows, note that any DLLs that you copy into the source tree will be packaged too.
Installing for development¶
Frequently asked questions¶
Report a compilation problem¶
Matplotlib compiled fine, but nothing shows up when I use it¶
The first thing to try is a clean install and see if that helps. If not, the best way to test your install is by running a script, rather than working interactively from a python shell or an integrated development environment such as IDLE which add additional complexities. Open up a UNIX shell or a DOS command prompt and run, for example:
This will give you additional information about which backends Matplotlib is loading, version information, and more. At this point you might want to make sure you understand Matplotlib’s configuration process, governed by the matplotlibrc configuration file which contains instructions within and the concept of the Matplotlib backend.
How to completely remove Matplotlib¶
Occasionally, problems with Matplotlib can be solved with a clean installation of the package. In order to fully remove an installed Matplotlib:
OSX Notes¶
Which python for OSX?¶
Other options for a fresh Python install are the standard installer from python.org, or installing Python using a general OSX package management system such as homebrew or macports. Power users on OSX will likely want one of homebrew or macports on their system to install open source software packages, but it is perfectly possible to use these systems with another source for your Python binary, such as Anaconda or Python.org Python.
Installing OSX binary wheels¶
If you are using Python from https://www.python.org, Homebrew, or Macports, then you can use the standard pip installer to install Matplotlib binaries in the form of wheels.
pip is installed by default with python.org and Homebrew Python, but needs to be manually installed on Macports with
Once pip is installed, you can install Matplotlib and all its dependencies with from the Terminal.app command line:
Checking your installation¶
The new version of Matplotlib should now be on your Python «path». Check this at the Terminal.app command line:
You should see something like
where 3.0.0 is the Matplotlib version you just installed, and the path following depends on whether you are using Python.org Python, Homebrew or Macports. If you see another version, or you get an error like
then check that the Python binary is the one you expected by running
Установка matplotlib и архитектура графиков / plt 1
matplotlib — это библиотека, предназначенная для разработки двумерных графиков (включая 3D-представления). За последнее время она широко распространилась в научных и инженерных кругах (http://matplotlib.org):
Среди всех ее функций особо выделяются следующие:
О Matplotlib
matplotlib спроектирована с целью максимально точно воссоздать среду MATLAB в плане графического интерфейса и синтаксической формы. Этот подход оказался успешным, ведь он позволил задействовать особенности уже проверенного ПО (MATLAB), распространив библиотеку в среду технологий и науки. Более того, она включает тот объем работы по оптимизации, который был проделан за много лет. Результат — простота в использовании, что особенно важно для тех, у кого нет опыта работы в этой сфере.
Помимо простоты библиотека matplotlib также унаследовала от MATLAB интерактивность. Это значит, что специалист можно вставлять команду за командой для постепенной разработки графического представления данных. Этот режим отлично подходит для более интерактивных режимов работы с Python, таких как IPython, QtConsole и Jupyter Notebook, предоставляя среду для анализа данных, где есть все, что можно найти, например в Mathematica, IDL или MATLAB.
Гений создателей этой библиотеки в использовании уже доступных, зарекомендовавших себя инструментов из области науки. И это не ограничивается лишь режимом исполнения MATLAB, но также моделями текстового представления научных выражений и символов LaTeX. Благодаря своим возможностям по представлению научных выражений LaTeX был незаменимым элементом научных публикаций и документаций, в которых требуются такие визуальные репрезентации, как интегралы, объединения и производные. А matplotlib интегрирует этот инструмент для улучшения качества отображения.
Не стоит забывать о том, что matplotlib — это не отдельное приложение, а библиотека такого языка программирования, как Python. Поэтому она на полную использует его возможности. Matplotlib воспринимается как графическая библиотека, позволяющая программными средствами настраивать визуальные элементы, из которых состоят графики, и управлять ими. Способность запрограммировать визуальное представление позволяет управлять воспроизводимостью данных в разных средах особенно при изменениях или обновлениях.
А поскольку matplotlib — это библиотека Python, она позволяет на полную использовать потенциал остальных библиотек языка. Чаще всего работе с анализом данных matplotlib взаимодействует с набором других библиотек, таких как NumPy и pandas, но можно добавлять и другие.
Наконец, графическое представление из этой библиотеки можно экспортировать в самые распространенные графические форматы (PNG и SVG) и затем использовать в других приложениях, документах, в сети и так далее.
Установка
Если его нужно установить прямо, то команды зависят от операционной системы
В системах Debian-Ubuntu:
В macOS или Windows нужно использовать pip
IPython и IPython QtConsole
Для знакомства со всеми инструментами мира Python часто используют IPython из терминала или QtConsole. Все благодаря тому, что IPython позволяет использовать интерактивность улучшенного терминала и интегрировать графику прямо в консоль.
Для запуска сессии IPython нужно использовать следующую команду:
Если же используется Jupyter QtConsole с возможностью отображения графики вместе с командами, то нужна эта:
На экране тут же отобразится новое окно с запущенной сессией IPython.
Однако ничто не мешает использовать стандартную сессию Python. Все примеры дальше будут работать и в таком случае.
Архитектура matplotlib
Одна из основных задач, которую выполняет matplotlib — предоставление набора функций и инструментов для представления и управления Figure (так называется основной объект) вместе со всеми внутренними объектами, из которого он состоит. Но в matplotlib есть также инструменты для обработки событий и, например, анимации. Благодаря им эта библиотека способна создавать интерактивные графики на основе событий по нажатию кнопки или движению мыши.
Архитектура matplotlib логически разделена на три слоя, расположенных на трех уровнях. Коммуникация непрямая — каждый слой может взаимодействовать только с тем, что расположен под ним, но не над.
Слой бэкенда
Слой Backend является нижним на диаграмме с архитектурой всей библиотеки. Он содержит все API и набор классов, отвечающих за реализацию графических элементов на низком уровне.
Художественный слой
Средним слоем выступает художественный ( artist ). Все элементы, составляющие график, такие как название, метки осей, маркеры и так далее, являются экземплярами этого объекта. Каждый из них играет свою роль в иерархической структуре.
Есть два художественных класса: примитивный и составной.
На этом уровне часто приходится иметь дело с объектами, занимающими высокое положение в иерархии: график, система координат, оси. Поэтому важно полностью понимать, какую роль они играют. Следующее изображение показывает три основных художественных (составных объекта), которые часто используются на этом уровне.
Слой сценария (pyplot)
pylab и pyplot
Pylab объединяет функциональность pyplot с возможностями NumPy в одном пространстве имен, поэтому отдельно импортировать NumPy не нужно. Более того, при импорте pylab функции из pyplot и NumPy можно вызывать без ссылки на модуль (пространство имен), что похоже на MATLAB.
Пакет pyplot предлагает классический интерфейс Python для программирования, имеет собственное пространство имеет и требует отдельного импорта NumPy. В последующих материалах используется этот подход. Его же применяет большая часть программистов на Python.














