Pylab inline что значит
3. Магические команды matplotlib
Я предполагаю, что вы так же как и я, работаете в дистрибутиве Python Anaconda и используете IPython в оболочке Jupyter Notebook. Если это так, то начнем мы с магических команд. Дело в том, что matplotlib может выводить графики на экран разными способами (использовать различные backend-ы). Для начала проверим версию библиотеки и backend, который используется по умолчанию. Создайте новый блокнот и выполните в первой ячейке следующий код:
Если вы работаете в интерактивном режиме Python или IPython, то используемым backendom скорее всего окажется Tk или Qt. Но если мы работаем в Jupyter, то нам нужен backend способный работать с браузером, т.е. основанный на javascript.
Все что вы увидите:
Никакого графика нет. Тем не менее matplotlib создал объект графика и его осталось только отобразить, точнее осталось указать чем именно этот график должен отображаться.
Давайте добавим в начало кода магическую команду:
В результате появится сообщение:
В сообщении говорится, что используется backend Qt, и, действительно появилось новое окошко с графиком:
Как видите, график появился не в отдельном окне, а прямо внутри вашего блокнота, при этом он так же интерактивен.
Если в других ячейках выполнить код, который строит графики, то они появятся в той же области. Выполните следующий код в ячейке ниже и убедитесь в этом:
В таком интерактивном режиме, график моментально реагирует на все изменения в данных, что очень похоже на интерактивный режим самого языка Python. Давайте двинемся дальше и рассмотрим еще одну магическую команду.
Снова немного изменим наш код:
После выполнения данной команды, график будет построен прямо в браузере под ячейкой в которой выполнен код. Команда %matplotlib inline указывает, что график необходимо построить все в той же оболочке Jupyter, но теперь он выводится как обычная картинка. Данный способ удобен тем, что позволяет проводить очень много экспериментов в рамках одного окна (точнее web-страницы). В этом статическом режиме, никакие изменения не отобразятся до тех пор пока не будет выполнена команда plt.show() Именно этой магической командой мы и будем пользоваться в дальнейшем. Но не забывайте, два предыдущих способа вывода графиков могут так же оказаться весьма полезны.
Автоматически запускать% matplotlib inline в IPython Notebook
Каждый раз, когда я запускаю IPython Notebook, первая команда, которую я запускаю,
Есть ли способ изменить мой конфигурационный файл, чтобы при запуске IPython он автоматически находился в этом режиме?
7 ответов
Способ конфигурации
IPython имеет профили для конфигурации, расположенные в
Добавьте встроенный параметр для matplotlib в ipython_kernel_config.py :
Матплотлиб против пилаб
Использование %pylab для получения встроенных графиков не рекомендуется,
Он вводит в ваше пространство имен всякого рода ганк, который вам просто не нужен.
Небольшая цена явного ввода вашего импорта должна быть полностью преодолена тем фактом, что теперь у вас есть воспроизводимый код.
В вашем ipython_config.py файле найдите следующие строки
В (текущем) IPython 3.2.0 (Python 2 или 3)
Добавьте следующую строку
Добавить его сразу после
Я думаю, что вы хотите, чтобы запустить следующее из командной строки:
Если вам не нравится каждый раз вводить его в командной строке, вы можете создать псевдоним, который сделает это за вас.
В дополнение к @Kyle Kelley и @DGrady, вот запись, которую можно найти в
$HOME/.ipython/profile_default/ipython_kernel_config.py (или какой профиль вы создали)
Это будет работать в сеансах ipython qtconsole и ноутбука.
Параметр был отключен в Jupyter 5.X и выше, добавив код ниже
Таким образом, вы можете увидеть, какая команда выполняется для запуска ядра. Так что, если вы выполните команду ниже
Так что теперь, если мы обновим наш kernel.json файл до
И если я запускаю jupyter notebook графики автоматически inline
Обратите внимание, что приведенный ниже подход также все еще работает, когда вы создаете файл по указанному ниже пути.
Но недостатком этого подхода является то, что это глобальное влияние на каждую среду, использующую Python. Вы также можете рассматривать это как преимущество, если хотите иметь общее поведение в разных средах с одним изменением.
Так что выберите подход, который вы хотели бы использовать на основе ваших требований
Построение графиков в Python при помощи Matplotlib
Картиной можно выразить тысячу слов. В случае с библиотекой Python matplotlib, к счастью, понадобится намного меньше слов в коде для создания качественных графиков.
Однако, matplotlib это еще и массивная библиотека, и создание графика, который будет выглядеть «просто, нормально» обычно проходит через путь проб и ошибок. Использование однострочных линий для создания базовых графиков в matplotlib – весьма просто, но умело пользоваться остальными 98% библиотеки может быть сложно.
Эта статья – руководство для пользователей Python на начальном-среднем уровне по matplotlib, с использованием как теории, так и практических примеров. Обучение по практическим примерам может быть очень продуктивным, и дает возможность получить представление даже на поверхностном уровне понимания внутренней работы и макета библиотеки.
Что мы рассмотрим?
Эта статья подразумевает, что пользователь имеет хотя-бы минимальное представление о NumPy. Мы в основном будем пользоваться модулем numpy.random для создания «игрушечных» данных, рисовать примеры из различных статистических источников.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Если у вас еще не установлен matplotlib, рекомендуем ознакомиться с руководством по установке, перед тем как продолжить.
Почему Matplotlib может быть сложным?
Изучение matplotlib временами может быть тяжелым процессом. Проблема не в нехватке документации (которая весьма обширная, между прочим). Сложности могут возникнуть со следующим:
Так что, перед тем как мы перейдем к сложным примерам, не помешает освоить корневые концепции дизайна matplotlib.
Pylab: что это и нужно ли мне это?
Немножко истории: Нейробиолог Джон Д. Хантер начал разрабатывать matplotlib в 2003 году, в основном вдохновляясь эмуляцией команд программного обеспечения Mathworks MATLAB. Джон отошел в мир иной трагически рано, в возрасте 44 лет в 2012 году, и matplotlib на сегодняшний день является целиком и полностью продуктом сообщества: развивается и поддерживается множеством людей. (Джон говорил об эволюции matplotlib на конференции SciPy в 2012, которую однозначно стоит посмотреть.)
Одной из важных особенностей MATLAB является его глобальный стиль. Концепция импорта Python не сильно используется в MATLAB, и большинство функций MATLAB легко доступны для пользователя на верхнем уровне.
Заказать свой собственный уникальный номер можно от Сим-Трейд.ру. Быстрая доставка в день заказа и красивые номера начиная от 300 руб. с выгодным тарифным планом. Свой уникальный номер это хороший признак для введения бизнеса с момента первого звонка.
Понимание того, что корни matplotlib растут из MATLAB, помогает объяснить существование pylab. pylab – это модуль внутри библиотеки matplotlib, который был встроен для подражания общего стиля MATLAB. Он существует только для внесения ряда функций классов из NumPy и matplotlib в пространство имен, что упрощает переход пользователей MATLAB, которые не сталкивались с необходимостью в операторах импорта. Бывшие пользователи MATLAB (которые очень хорошие люди, обещаем!) полюбили его функционал, потому что при помощи from pylab import * они могут просто вызывать plot() или array() напрямую также, как они это делали в MATLAB.
Проблема здесь может быть очевидной для некоторых пользователей Python: использование from pylab import * в сессии или скрипте – как правило, плохая идея. Matplotlib сегодня прямым текстом рекомендуют не делать этого в своих руководствах:
[pylab] все еще существует по историческим причинам, но его использование не рекомендуется. Он перегружает пространства имен функциями, которые оттеняют надстройки Python и может привести к скрытым багам. Для получения интеграции IPython без использования импортов, рекомендуется использовать %matplotlib.
В глубине своей, существует целая тонна потенциально конфликтных импортов, замаскированных в коротком источнике pylab. Фактически, использование ipython —pylab (из терминала или командной строки) или %pylab (из инструментов IPython/Jupyter) легко вызывает from pylab import *
Суть в том, что matplotlib забросили этот удобный модуль и рекомендуют не использовать pylab, подтверждая ключевое правило Python – явное лучше, чем неявное.
Без необходимости в использовании pylab, мы всегда можем обойтись всего одним каноничным импортом:
Automatically run %matplotlib inline in IPython Notebook
Every time I launch IPython Notebook, the first command I run is
Is there some way to change my config file so that when I launch IPython, it is automatically in this mode?
7 Answers 7
The configuration way
IPython has profiles for configuration, located at
Add the inline option for matplotlib to ipython_kernel_config.py :
matplotlib vs. pylab
Usage of %pylab to get inline plotting is discouraged.
It introduces all sorts of gunk into your namespace that you just don’t need.
%matplotlib on the other hand enables inline plotting without injecting your namespace. You’ll need to do explicit calls to get matplotlib and numpy imported.
The small price of typing out your imports explicitly should be completely overcome by the fact that you now have reproducible code.
I think what you want might be to run the following from the command line:
If you don’t like typing it at the cmd line every time then you could create an alias to do it for you.
The setting was disabled in Jupyter 5.X and higher by adding below code
And in previous versions it has majorly been a warning. But this not a big issue because Jupyter uses concepts of kernels and you can find kernel for your project by running below command
This gives me the path to the kernel folder. Now if I open the /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3/kernel.json file, I see something like below
So you can see what command is executed to launch the kernel. So if you run the below command
So now if we update our kernel.json file to
And if I run jupyter notebook the graphs are automatically inline
Note the below approach also still works, where you create a file on below path
But the disadvantage of this approach is that this is a global impact on every environment using python. You can consider that as an advantage also if you want to have a common behaviour across environments with a single change.
So choose which approach you would like to use based on your requirement
Matplotlib — Краткое руководство
Matplotlib — один из самых популярных пакетов Python, используемых для визуализации данных. Это кроссплатформенная библиотека для создания 2D графиков из данных в массивах. Matplotlib написан на Python и использует NumPy, числовое математическое расширение Python. Он предоставляет объектно-ориентированный API, который помогает встраивать графики в приложения, используя наборы инструментов Python GUI, такие как PyQt, WxPythonotTkinter. Он также может использоваться в оболочках Python и IPython, ноутбуках Jupyter и серверах веб-приложений.
Matplotlib имеет процедурный интерфейс под названием Pylab, который похож на MATLAB, проприетарный язык программирования, разработанный MathWorks. Matplotlib вместе с NumPy можно рассматривать как эквивалент MATLAB с открытым исходным кодом.
Matplotlib был первоначально написан Джоном Д. Хантером в 2003 году. Текущая стабильная версия 2.2.0 выпущена в январе 2018 года.
Matplotlib — Настройка среды
Matplotlib и его пакеты зависимостей доступны в виде пакетов wheel в стандартных репозиториях пакетов Python и могут быть установлены в системах Windows, Linux, а также MacOS с помощью диспетчера пакетов pip.
Incase версии Python 2.7 или 3.4 установлены не для всех пользователей, необходимо установить распространяемые пакеты Microsoft Visual C ++ 2008 (64-разрядная или 32-разрядная версия для Python 2.7) или Microsoft Visual C ++ 2010 (64-разрядная или 32-разрядная версия для Python 3.4).
Если вы используете Python 2.7 на Mac, выполните следующую команду —
После выполнения вышеприведенной команды подпроцесс 32 — зависимость может быть скомпилирован.
В чрезвычайно старых версиях Linux и Python 2.7 может потребоваться установить основную версию подпроцесса32.
Matplotlib требует большого количества зависимостей —
При желании вы также можете установить несколько пакетов, чтобы активировать лучшие инструменты интерфейса пользователя.
Для лучшей поддержки формата вывода анимации и форматов файлов изображений, LaTeX и т. Д. Вы можете установить следующее:
Матплотлиб — Анаконда дистрибуция
Anaconda — это бесплатный и открытый исходный код языков программирования Python и R для крупномасштабной обработки данных, прогнозной аналитики и научных вычислений. Распределение делает управление пакетами и развертывание простым и легким. Matplotlib и множество других полезных (data) научных инструментов являются частью дистрибутива. Версии пакетов управляются системой управления пакетами Conda. Преимущество Anaconda заключается в том, что у вас есть доступ к более чем 720 пакетам, которые можно легко установить с помощью Andaonda Conda, менеджера пакетов, зависимостей и среды.
Дистрибутив Anaconda доступен для установки по адресу https://www.anaconda.com/download/. Для установки в Windows доступны 32 и 64-битные бинарные файлы —
Установка является довольно простым процессом на основе мастера. Вы можете выбрать между добавлением Anaconda в переменную PATH и регистрацией Anaconda в качестве Python по умолчанию.
Для установки в Linux загрузите установщики для 32-разрядных и 64-разрядных установщиков со страницы загрузок —
Теперь запустите следующую команду из терминала Linux —
Canopy и ActiveState — наиболее востребованные решения для Windows, macOS и распространенных платформ Linux. Пользователи Windows могут найти опцию в WinPython.
Matplotlib — ноутбук Юпитер
Jupyter — это аббревиатура, означающая Julia, Python и R. Эти языки программирования были первыми целевыми языками приложения Jupyter, но в настоящее время технология ноутбука также поддерживает многие другие языки.
В 2001 году Фернандо Перес начал разработку Ipython. IPython — это командная оболочка для интерактивных вычислений на нескольких языках программирования, изначально разработанная для Python.
Рассмотрим следующие возможности, предоставляемые IPython —
Интерактивные оболочки (на основе терминала и Qt).
Записная книжка на основе браузера с поддержкой кода, текста, математических выражений, встроенных графиков и других средств массовой информации.
Поддержка интерактивной визуализации данных и использование инструментария GUI.
Гибкие, встраиваемые интерпретаторы для загрузки в собственные проекты.
Интерактивные оболочки (на основе терминала и Qt).
Записная книжка на основе браузера с поддержкой кода, текста, математических выражений, встроенных графиков и других средств массовой информации.
Поддержка интерактивной визуализации данных и использование инструментария GUI.
Гибкие, встраиваемые интерпретаторы для загрузки в собственные проекты.
В 2014 году Фернандо Перес анонсировал дополнительный проект от IPython под названием Project Jupyter. IPython будет продолжать существовать как оболочка Python и ядро для Jupyter, в то время как блокнот и другие не зависящие от языка части IPython будут перемещаться под именем Jupyter. Jupyter добавил поддержку для Julia, R, Haskell и Ruby.
Чтобы запустить ноутбук Jupyter, откройте навигатор Anaconda (графический интерфейс пользователя на рабочем столе, включенный в Anaconda, который позволяет запускать приложения и легко управлять пакетами, средами и каналами Conda без необходимости использования команд командной строки).
Навигатор отображает установленные компоненты в дистрибутиве.
Запустите Jupyter Notebook из навигатора —
Вы увидите открытие приложения в веб-браузере по следующему адресу — http: // localhost: 8888.
Вы, вероятно, хотите начать с создания нового ноутбука. Вы можете легко сделать это, нажав на кнопку «Создать» на вкладке «Файлы». Вы видите, что у вас есть возможность сделать обычный текстовый файл, папку и терминал. Наконец, вы также увидите возможность сделать ноутбук на Python 3.
Matplotlib — Pyplot API
Новый блокнот без названия с расширением .ipynb (расшифровывается как блокнот IPython) отображается на новой вкладке браузера.
matplotlib.pyplot — это набор функций командного стиля, которые делают Matplotlib похожим на MATLAB. Каждая функция Pyplot вносит некоторые изменения в фигуру. Например, функция создает фигуру, область построения на рисунке, строит некоторые линии в области построения, украшает график метками и т. Д.
Типы участков
Сделайте барный сюжет.
Сделайте горизонтальный линейный график.
Сделать коробку и усы сюжет.
Создайте 2D гистограмму.
Постройте круговую диаграмму.
Нанесите линии и / или маркеры на оси.
Составьте точечный график x против y.
Рисует сложенную область участка.
Сделайте пошаговый сюжет.
Постройте двумерное поле стрелок.
Сделайте барный сюжет.
Сделайте горизонтальный линейный график.
Сделать коробку и усы сюжет.
Создайте 2D гистограмму.
Постройте круговую диаграмму.
Нанесите линии и / или маркеры на оси.
Составьте точечный график x против y.
Рисует сложенную область участка.
Сделайте пошаговый сюжет.
Постройте двумерное поле стрелок.
Функции изображения
Прочитать изображение из файла в массив.
Сохраните массив как в файле изображения.
Покажите изображение на осях.
Прочитать изображение из файла в массив.
Сохраните массив как в файле изображения.
Покажите изображение на осях.
Функции оси
Добавьте оси к фигуре.
Добавьте текст к осям.
Установить заголовок текущих осей.
Установите метку оси x текущей оси.
Получить или установить пределы х текущих осей.
Получить или установить x-пределы текущего местоположения галочек и меток.
Установите метку оси Y текущей оси.
Получить или установить Y-пределы текущих осей.
Установите масштаб оси Y.
Получите или установите y-пределы текущего местоположения галочки и меток.
Добавьте оси к фигуре.
Добавьте текст к осям.
Установить заголовок текущих осей.
Установите метку оси x текущей оси.
Получить или установить пределы х текущих осей.
Получить или установить x-пределы текущего местоположения галочек и меток.
Установите метку оси Y текущей оси.
Получить или установить Y-пределы текущих осей.
Установите масштаб оси Y.
Получите или установите y-пределы текущего местоположения галочки и меток.
Функции рисунка
Добавьте текст к рисунку.
Создает новую фигуру.
Сохранить текущий рисунок.
Закройте окно фигуры.
Добавьте текст к рисунку.
Создает новую фигуру.
Сохранить текущий рисунок.
Закройте окно фигуры.
Matplotlib — простой сюжет
В этой главе мы узнаем, как создать простой график с помощью Matplotlib.
Теперь мы покажем простой линейный график угла в радианах относительно его значения синуса в Matplotlib. Начнем с того, что модуль Pyplot из пакета Matplotlib импортируется с псевдонимом plt по договоренности.
Далее нам нужен массив чисел для построения. Различные функции массива определены в библиотеке NumPy, которая импортируется с псевдонимом np.
Теперь мы получаем ndarray объект углов между 0 и 2π, используя функцию arange () из библиотеки NumPy.
Объект ndarray служит значениями на оси x графика. Соответствующие значения синусов углов в x, которые будут отображены на оси y, получаются с помощью следующего оператора —
Значения из двух массивов построены с использованием функции plot ().
Вы можете установить название графика и метки для осей x и y.
Окно просмотра графика вызывается функцией show () —
Полная программа выглядит следующим образом —
Когда вышеуказанная строка кода выполняется, отображается следующий график —
Теперь используйте ноутбук Jupyter с Matplotlib.
Запустите блокнот Jupyter из навигатора Anaconda или из командной строки, как описано ранее. В ячейке ввода введите операторы импорта для Pyplot и NumPy —
Чтобы отобразить результаты печати внутри самой записной книжки (а не в отдельной программе просмотра), введите следующее волшебное утверждение —
Получите x как ndarray объект, содержащий углы в радианах от 0 до 2π, а y как синусоидальную величину каждого угла —
Установите метки для осей X и Y, а также название графика —
Наконец, выполните функцию plot () для генерации синусоидального изображения в записной книжке (нет необходимости запускать функцию show ()) —
После выполнения последней строки кода отображается следующий вывод:
Matplotlib — модуль PyLab
PyLab — это процедурный интерфейс к библиотеке объектно-ориентированных графиков Matplotlib. Matplotlib — это целый пакет; matplotlib.pyplot — это модуль в Matplotlib; PyLab — это модуль, который устанавливается вместе с Matplotlib.
PyLab — это удобный модуль, который массово импортирует matplotlib.pyplot (для построения графиков) и NumPy (для математики и работы с массивами) в одном пространстве имен. Хотя во многих примерах используется PyLab, он больше не рекомендуется.
Основы печати
Построение кривых выполняется с помощью команды plot. Требуется пара массивов одинаковой длины (или последовательности) —
Выше строка кода генерирует следующий вывод —
Чтобы отобразить символы, а не линии, укажите дополнительный строковый аргумент.
Теперь рассмотрим выполнение следующего кода —
Он отображает красные точки, как показано ниже —
Участки могут быть наложены. Просто используйте несколько команд заговора. Используйте clf (), чтобы очистить график.
Выше строка кода генерирует следующий вывод —
Matplotlib — объектно-ориентированный интерфейс
Основная идея использования более формального объектно-ориентированного метода состоит в том, чтобы создавать объекты фигур, а затем просто вызывать методы или атрибуты этого объекта. Этот подход помогает лучше справляться с холстом, на котором есть несколько графиков.
В объектно-ориентированном интерфейсе Pyplot используется только для нескольких функций, таких как создание фигур, а пользователь явно создает и отслеживает объекты фигур и осей. На этом уровне пользователь использует Pyplot для создания фигур, и с помощью этих фигур можно создавать один или несколько объектов осей. Эти объекты осей затем используются для большинства графических действий.
Для начала мы создаем экземпляр фигуры, который предоставляет пустой холст.
Теперь добавьте оси к фигуре. Метод add_axes () требует объекта списка из 4 элементов, соответствующих левому, нижнему, ширине и высоте фигуры. Каждое число должно быть от 0 до 1 —
Установить метки для осей X и Y, а также заголовок —
Вызвать метод plot () объекта оси.
Если вы используете ноутбук Jupyter, должна быть выпущена встроенная директива% matplotlib; функция otherwistshow () модуля pyplot отображает график.
Попробуйте выполнить следующий код —
Выход
Выше строка кода генерирует следующий вывод —
Тот же код при запуске в блокноте Jupyter показывает вывод, как показано ниже —
Matplotlib — класс рисунков
Модуль matplotlib.figure содержит класс Figure. Это контейнер верхнего уровня для всех элементов графика. Создание объекта Figure осуществляется путем вызова функции figure () из модуля pyplot —
В следующей таблице приведены дополнительные параметры —
Figsize | (ширина, высота) кортеж в дюймах |
точек на дюйм | Точек на дюймы |
Facecolor | Рисунок патча лицевого цвета |
Edgecolor | Рисунок края пятна цвета |
Ширина линии | Ширина линии края |
Matplotlib — класс топоров
Объект оси — это область изображения с пространством данных. Данная фигура может содержать много осей, но данный объект осей может быть только на одной фигуре. Оси содержат два (или три в случае 3D) объекта Оси. Класс Axes и его функции-члены являются основной точкой входа в работу с интерфейсом OO.
Объект Axes добавляется к рисунку путем вызова метода add_axes (). Он возвращает объект осей и добавляет оси в позиции rect [left, bottom, width, height], где все величины выражены в долях ширины и высоты фигуры.
параметр
Ниже приведен параметр для класса Axes —
rect — последовательность из четырех величин [влево, низ, ширина, высота].
rect — последовательность из четырех величин [влево, низ, ширина, высота].
Следующие функции-члены класса осей добавляют разные элементы в plot —
легенда
Метод legend () класса осей добавляет легенду на график. Требуется три параметра —
Где метки представляют собой последовательность строк и обрабатывают последовательность экземпляров Line2D или Patch. loc может быть строкой или целым числом, указывающим местоположение легенды.
Строка местоположения | Код местоположения |
---|---|
Лучший | 0 |
верхний правый | 1 |
верхний левый | 2 |
нижний левый | 3 |
Нижний правый | 4 |
Правильно | 5 |
Центр слева | 6 |
Правый центр | 7 |
нижний центр | 8 |
верхний центр | 9 |
Центр | 10 |
axes.plot ()
Это основной метод класса осей, который отображает значения одного массива относительно другого в виде линий или маркеров. Метод plot () может иметь необязательный аргумент строки формата для указания цвета, стиля и размера линии и маркера.
Цветовые коды
символ | цвет |
---|---|
«Б» | синий |
‘г’ | зеленый |
‘р’ | красный |
«Б» | синий |
«С» | Cyan |
«М» | фуксин |
«У» | желтый |
«К» | черный |
«Б» | синий |
«Ш» | белый |
Коды маркеров
символ | Описание |
---|---|
» | Маркер точки |
«О» | Маркер круга |
‘Икс’ | Маркер X |
‘D’ | Алмазный маркер |
‘ЧАС’ | Маркер шестиугольника |
‘S’ | Квадратный маркер |
‘+’ | Плюс маркер |
Стили линий
символ | Описание |
---|---|
‘-‘ | Сплошная линия |
‘-‘ | Пунктир |
‘-‘. | Пунктирная линия |
‘:’ | Пунктирная линия |
‘ЧАС’ | Маркер шестиугольника |
В следующем примере показаны расходы на рекламу и продажи телевизоров и смартфонов в виде линейных графиков. Линия, представляющая телевизор, представляет собой сплошную линию с желтым цветом и квадратными маркерами, а линия смартфона — пунктирная линия с зеленым цветом и круговым маркером.
Когда приведенная выше строка кода выполняется, она создает следующий график —
Матплотлиб — Мультиплоты
В этой главе мы научимся создавать несколько сюжетов на одном холсте.
Функция subplot () возвращает объект оси в заданной позиции сетки. Сигнатура Call этой функции —
На текущем рисунке функция создает и возвращает объект Axes с указателем позиции сетки nrows по ncolsaxes. Индексы изменяются от 1 до nrows * ncols с приращением в главном порядке строк. Если значение параметраrow, ncols и index меньше 10, индексы также могут быть заданы как одно объединенное, threedigitnumber.
Например, как вспомогательный участок (2, 3, 3), так и вспомогательный участок (233) создают оси в верхнем правом углу текущей фигуры, занимая половину высоты фигуры и треть ширины фигуры.
Создание подзаголовка приведет к удалению любого ранее существующего подплота, который перекрывается с ним за пределами общей границы.
Выше строка кода генерирует следующий вывод —
Функция add_subplot () класса figure не будет перезаписывать существующий график —
Когда приведенная выше строка кода выполняется, она генерирует следующий вывод —
Вы можете добавить график вставки на том же рисунке, добавив другой объект осей на том же рисунке.
После выполнения вышеупомянутой строки кода генерируется следующий вывод:
Matplotlib — Функция Subplots ()
API Pyplot в Matplotlib имеет вспомогательную функцию под названием subplots (), которая действует как служебная оболочка и помогает создавать общие макеты подзаговоров, включая объект фигуры, за один вызов.
Два целочисленных аргумента этой функции задают количество строк и столбцов сетки подзаговоров. Функция возвращает объект фигурки и кортеж, содержащий объекты осей, равные nrows * ncols. Каждый объект оси доступен по его индексу. Здесь мы создаем участок из 2 строк по 2 столбца и отображаем 4 разных графика в каждом из них.
Выше строка кода генерирует следующий вывод —
Функция Matplotlib — Subplot2grid ()
Эта функция дает больше гибкости при создании объекта осей в определенном месте сетки. Он также позволяет охватывать объект оси по нескольким строкам или столбцам.
В следующем примере сетка 3X3 объекта рисунка заполнена объектами осей различных размеров в интервалах строк и столбцов, каждый из которых показывает свой график.
После выполнения вышеуказанного строкового кода генерируется следующий вывод:
Матплотлиб — Сетки
Функция grid () объекта axes устанавливает или отключает видимость сетки внутри фигуры. Вы также можете отобразить основные / второстепенные (или оба) галочки сетки. Дополнительно свойства color, linestyle и linewidth могут быть установлены в функции grid ().
Matplotlib — Оси форматирования
Иногда одна или несколько точек намного больше, чем объем данных. В таком случае масштаб оси должен быть логарифмическим, а не нормальным. Это логарифмическая шкала. В Matplotlib это возможно, установив для свойства xscale или vscale объекта axes значение ‘log’.
Иногда требуется также показать некоторое дополнительное расстояние между номерами осей и меткой оси. Для свойства labelpad любой оси (x, y или обоих) можно установить желаемое значение.
Обе вышеуказанные функции демонстрируются с помощью следующего примера. Подплощадка справа имеет логарифмическую шкалу, а слева — ось x с меткой на большем расстоянии.
Оси осей — это линии, соединяющие отметки осей, обозначающие границы области графика. Объект оси имеет шипы, расположенные сверху, снизу, слева и справа.
Каждый позвоночник можно отформатировать, указав цвет и ширину. Любое ребро можно сделать невидимым, если его цвет не задан.
Matplotlib — установка пределов
На следующем графике показаны автомасштабированные пределы осей x и y:
Теперь мы отформатируем пределы по оси х (от 0 до 10) и оси у (от 0 до 10000) —
Matplotlib — Установка меток и меток
Тики — это маркеры, обозначающие точки данных на осях. До сих пор Matplotlib — во всех наших предыдущих примерах — автоматически брал на себя задачу расстановки точек на оси. Стандартные локаторы и форматеры тиков Matplotlib спроектированы так, чтобы их было достаточно во многих распространенных ситуациях. Положение и метки галочек могут быть явно указаны в соответствии с конкретными требованиями.
Функция xticks () и yticks () принимает объект списка в качестве аргумента. Элементы в списке обозначают позиции на соответствующем действии, где будут отображаться галочки.
Этот метод помечает точки данных в заданных позициях галочками.
Аналогично, метки, соответствующие галочкам, могут быть установлены функциями set_xlabels () и set_ylabels () соответственно.
Это будет отображать текстовые метки под маркерами на оси х.
Следующий пример демонстрирует использование галочек и меток.
Matplotlib — Двойные Оси
Считается полезным иметь двойные оси x или y на фигуре. Более того, при построении кривых с различными единицами вместе. Matplotlib поддерживает это с помощью функций twinx и twiny.
В следующем примере график имеет двойные оси Y, одна из которых показывает exp (x), а другая — log (x) —
Матплотлиб — Барный участок
Гистограмма или гистограмма — это диаграмма или диаграмма, которая представляет категориальные данные с прямоугольными столбцами с высотами или длинами, пропорциональными значениям, которые они представляют. Бары могут быть нанесены вертикально или горизонтально.
Гистограмма показывает сравнения между отдельными категориями. Одна ось диаграммы показывает конкретные категории, которые сравниваются, а другая ось представляет измеренное значение.
Matplotlib API предоставляет функцию bar (), которую можно использовать в стиле MATLAB, а также объектно-ориентированный API. Сигнатура функции bar () для использования с объектом axes выглядит следующим образом:
Функция создает гистограмму со связанным прямоугольником размера (x-width = 2; x + width = 2; bottom; bottom + height).
Параметры для функции —
Икс | последовательность скаляров, представляющих координаты х баров. выровняйте элементы управления, если x — центр полосы (по умолчанию) или левый край. |
рост | скаляр или последовательность скаляров, представляющих высоту (и) столбцов. |
ширина | скаляр или массив, необязательно. ширина (с) баров по умолчанию 0,8 |
низ | скаляр или массив, необязательно. координаты y столбцов по умолчанию Нет. |
выравнивать | <‘center’, ‘edge’>, необязательно, по умолчанию ‘center’ |
Функция возвращает контейнерный объект Matplotlib со всеми барами.
Ниже приведен простой пример графика бара Matplotlib. Показывает количество студентов, обучающихся на различных курсах, предлагаемых в институте.
При сравнении нескольких величин и при изменении одной переменной нам может потребоваться столбчатая диаграмма, на которой у нас есть столбцы одного цвета для одного количественного значения.
Мы можем построить несколько гистограмм, играя с толщиной и положением баров. Переменная данных содержит три ряда из четырех значений. Следующий скрипт покажет три гистограммы из четырех баров. Стержни будут иметь толщину 0,25 единиц. Каждая гистограмма будет сдвинута на 0,25 единицы от предыдущей. Объект данных представляет собой мультидикт, содержащий количество студентов, обучающихся в трех филиалах инженерного колледжа за последние четыре года.
Столбчатая диаграмма с накоплением объединяет столбцы, которые представляют разные группы друг над другом. Высота полученного столбца показывает объединенный результат групп.
Необязательный нижний параметр функции pyplot.bar () позволяет указать начальное значение для бара. Вместо того, чтобы работать от нуля до значения, оно будет идти снизу до значения. Первый вызов pyplot.bar () отображает синие полосы. Второй вызов pyplot.bar () отображает красные столбцы, причем нижняя часть синих столбцов находится сверху красных столбцов.
Матплотлиб — Гистограмма
Гистограмма является точным представлением распределения числовых данных. Это оценка распределения вероятностей непрерывной переменной. Это своего рода гистограмма.
Чтобы построить гистограмму, выполните следующие действия.
Контейнеры обычно указываются как последовательные непересекающиеся интервалы переменной.
Функция matplotlib.pyplot.hist () строит гистограмму. Он вычисляет и рисует гистограмму х.
параметры
В следующей таблице перечислены параметры для гистограммы —
Икс | массив или последовательность массивов | |||||||||||||||||||||||||||||||||||||
бункеры | целое число или последовательность или ‘auto’, необязательно | |||||||||||||||||||||||||||||||||||||
необязательные параметры | ||||||||||||||||||||||||||||||||||||||
спектр | Нижний и верхний диапазон бункеров. | |||||||||||||||||||||||||||||||||||||
плотность | Если True, первым элементом возвращаемого кортежа будет счет, нормализованный для формирования плотности вероятности. | |||||||||||||||||||||||||||||||||||||
кумулятивный | Если True, то гистограмма вычисляется, где каждый бин дает счетчики в этом бине, а также все бины для меньших значений. | |||||||||||||||||||||||||||||||||||||
histtype | Тип гистограммы для рисования. По умолчанию это «бар» В следующем примере показана гистограмма оценок, полученных учениками в классе. Определены четыре ячейки: 0-25, 26-50, 51-75 и 76-100. Гистограмма показывает количество студентов, попадающих в этот диапазон. Сюжет выглядит так, как показано ниже — Matplotlib — круговая диаграммаКруговая диаграмма может отображать только одну серию данных. Круговые диаграммы показывают размер элементов (называемых клином) в одном ряду данных, пропорциональный сумме элементов. Точки данных на круговой диаграмме отображаются в процентах от всей круговой диаграммы. Круговая диаграмма выглядит лучше всего, если фигура и оси имеют квадратную форму, или аспект оси совпадает. параметрыВ следующей таблице перечислены параметры для круговой диаграммы —
Следующий код использует функцию pie () для отображения круговой диаграммы в списке студентов, зачисленных на различные курсы компьютерного языка. Пропорциональный процент отображается внутри соответствующего клина с помощью параметра autopct, который установлен в% 1.2f%. Matplotlib — Scatter PlotТочечные диаграммы используются для построения точек данных по горизонтальной и вертикальной оси в попытке показать, насколько одна переменная подвержена влиянию другой. Каждая строка в таблице данных представлена маркером, положение которого зависит от его значений в столбцах, заданных по осям X и Y. Третья переменная может быть установлена, чтобы соответствовать цвету или размеру маркеров, таким образом добавляя еще одно измерение к графику. Сценарий ниже показывает диаграмму разброса шкал оценок по сравнению с оценками мальчиков и девочек в двух разных цветах. Матплотлиб — Контур УчастокКонтурные графики (иногда называемые графиками уровня) — это способ показать трехмерную поверхность на двухмерной плоскости. Он отображает две прогнозирующие переменные XY на оси Y и ответную переменную Z в виде контуров. Эти контуры иногда называют z-слайсами или значениями изо-ответа. Контурная диаграмма подходит, если вы хотите увидеть, как изменяется значение Z в зависимости от двух входов X и Y, так что Z = f (X, Y). Контурная линия или изолиния функции двух переменных — это кривая, вдоль которой функция имеет постоянное значение. Независимые переменные x и y обычно ограничены регулярной сеткой, называемой meshgrid. Numpy.meshgrid создает прямоугольную сетку из массива значений x и массива значений y. Matplotlib API содержит функции contour () и contourf (), которые рисуют контурные линии и закрашенные контуры соответственно. Обе функции нуждаются в трех параметрах x, y и z. Matplotlib — Quiver PlotНа графике колчана векторы скорости отображаются в виде стрелок с компонентами (u, v) в точках (x, y). Приведенная выше команда отображает векторы в виде стрелок с координатами, указанными в каждой соответствующей паре элементов в x и y. параметрыВ следующей таблице перечислены различные параметры для графика колчана —
Следующий код рисует простой сюжет колчана — Matplotlib — Box PlotКвадратный график, также известный как график с усами, отображает сводку данных, содержащих минимум, первый квартиль, медиану, третий квартиль и максимум. На графике прямоугольника мы рисуем прямоугольник от первого квартиля до третьего квартиля. Вертикальная линия проходит через прямоугольник на медиане. Усы идут от каждого квартиля до минимума или максимума. Давайте создадим данные для боксов. Мы используем функцию numpy.random.normal () для создания поддельных данных. Требуется три аргумента, среднее значение и стандартное отклонение нормального распределения, а также количество требуемых значений. Выше строка кода будет генерировать следующий вывод — Матплотлиб — Сюжет для скрипкиГрафики для скрипки аналогичны блочным диаграммам, за исключением того, что они также показывают плотность вероятности данных при различных значениях. Эти графики включают маркер для медианы данных и прямоугольник, указывающий межквартильный диапазон, как на стандартных прямоугольниках. На этой рамке приведена оценка плотности ядра. Как и блочные графики, графики скрипки используются для представления сравнения переменного распределения (или выборочного распределения) по различным «категориям». Сюжет для скрипки более информативен, чем простой сюжет. Фактически, в то время как на рамочном графике показаны только сводные статистические данные, такие как среднее / среднее и межквартильный диапазоны, на графике скрипки показано полное распределение данных. Matplotlib — трехмерное черчениеТрехмерные оси можно создать, передав ключевое слово projection = ‘3d’ любой из стандартных процедур создания осей. Теперь мы можем строить различные трехмерные типы графиков. Самым простым трехмерным графиком является трехмерный линейный график, созданный из наборов (x, y, z) троек. Это можно создать с помощью функции ax.plot3D. Matplotlib — 3D Contour PlotФункция ax.contour3D () создает трехмерный контурный график. Требуется, чтобы все входные данные были в форме двумерных регулярных сеток, а Z-данные оценивались в каждой точке. Здесь мы покажем трехмерную контурную диаграмму трехмерной синусоидальной функции. Matplotlib — 3D каркасный сюжетКаркасный график принимает сетку значений и проецирует ее на указанную трехмерную поверхность, что позволяет довольно легко визуализировать получающиеся трехмерные формы. Функция plot_wireframe () используется для этой цели — Выше строка кода будет генерировать следующий вывод — Matplotlib — 3D Поверхностный сюжетПоверхностный график показывает функциональную взаимосвязь между назначенной зависимой переменной (Y) и двумя независимыми переменными (X и Z). Сюжет является сопутствующим сюжетом для контурного сюжета. Поверхностный график похож на каркасный график, но каждая грань каркаса представляет собой заполненный многоугольник. Это может помочь восприятию топологии визуализируемой поверхности. Plot_surface () функции x, y и z в качестве аргументов. Выше строка кода будет генерировать следующий вывод — Matplotlib — Работа с текстомMatplotlib имеет обширную текстовую поддержку, включая поддержку математических выражений, поддержку TrueType для растровых и векторных выводов, разделенный новой строкой текст с произвольными поворотами и поддержку юникода. Matplotlib включает в себя собственный matplotlib.font_manager, который реализует кросс-платформенный, W3C-совместимый алгоритм поиска шрифтов. Пользователь имеет большой контроль над свойствами текста (размер шрифта, вес шрифта, расположение и цвет текста и т. Д.). Matplotlib реализует большое количество математических символов и команд TeX. Следующий список команд используется для создания текста в интерфейсе Pyplot —
Следующие сценарии демонстрируют использование некоторых из вышеуказанных функций — Выше строка кода будет генерировать следующий вывод — Matplotlib — математические выраженияВы можете использовать подмножество TeXmarkup в любой текстовой строке Matplotlib, поместив ее внутри пары знаков доллара ($). Для создания нижних и верхних индексов используйте символы «_» и «^» — Выше строка кода будет генерировать следующий вывод — Matplotlib — Работа с изображениямиМодуль изображения в пакете Matplotlib предоставляет функции, необходимые для загрузки, изменения масштаба и отображения изображения. Загрузка данных изображения поддерживается библиотекой Pillow. Собственно, Matplotlib поддерживает только изображения PNG. Команды, показанные ниже, возвращаются к Подушке, если не удается выполнить родное чтение. Изображение, используемое в этом примере, является файлом PNG, но имейте это в виду требование подушки для ваших собственных данных. Функция imread () используется для чтения данных изображения в объекте ndarray типа float32 dtype. Предполагая, что следующее изображение с именем mtplogo.png присутствует в текущем рабочем каталоге. Новое изображение отображается, как показано ниже, если оно открыто в любой программе просмотра изображений. Матплотлиб — ПреобразованияПакет matplotlib построен поверх структуры преобразования, чтобы легко перемещаться между системами координат. Можно использовать четыре системы координат. Системы кратко описаны в таблице, приведенной ниже —
|