Ниже описаны несколько распространенных подходов к построению графиков с помощью Matplotlib.
API Pyplot
Модуль matplotlib.pyplot содержит функции, позволяющие быстро генерировать различные виды графиков. Примеры использования модуля matplotlib.pyplot можно найти в учебном пособии по Pyplot или в примерах использования Pyplot. Также рекомендуется ознакомиться с объектно-ориентированным подходом к построению графиков, описанным ниже.
-
matplotlib.pyplot.plotting()
-
Функция Описание acorrПостроить автокорреляцию x.angle_spectrumПостроить спектр фаз. annotateДобавить аннотацию к точке xyс текстомs.arrowДобавить стрелку на оси. autoscaleАвтоматически масштабировать вид оси по данным (переключатель). axesДобавить оси на рисунок. axhlineДобавить горизонтальную линию через ось. axhspanДобавить горизонтальный отрезок (прямоугольник) через ось. axisУдобный метод для получения или установки свойств осей. axvlineДобавить вертикальную линию через ось. axvspanДобавить вертикальный отрезок (прямоугольник) через ось. barСоздать столбчатую диаграмму. barbsПостроить 2-мерное поле стрелок. barhСоздать горизонтальную столбчатую диаграмму. boxВключить или выключить рамку осей. boxplotСоздать диаграмму размаха. broken_barhПостроить горизонтальные столбцы. claОчистить текущую ось. clabelРазметить контурный график. clfОчистить текущий рисунок. climУстановить пределы цветов текущего изображения. closeЗакрыть окно рисунка. cohereПостроить когерентность между x и y. colorbarДобавить цветовую шкалу к графику. contourПостроить контурные линии. contourfПостроить контурные линии. csdПостроить кросс-спектральную плотность. delaxesУдалить ось из текущего рисунка. drawПерерисовать текущий рисунок. errorbarПостроить график с ошибками. eventplotПостроить идентичные параллельные линии в заданных позициях. figimageДобавить нересамплированное изображение на рисунок. figlegendРазместить легенду на рисунке. fignum_existsfigtextДобавить текст на рисунок. figureСоздать новый рисунок. fillПостроить заполненные многоугольники. fill_betweenСоздать заполненные многоугольники между двумя кривыми. fill_betweenxСоздать заполненные многоугольники между двумя горизонтальными кривыми. findobjНайти объекты графических элементов. gcaПолучить текущий экземпляр Axesна текущем рисунке, соответствующий заданным ключевым аргументам, или создать его.gcfПолучить ссылку на текущий рисунок. gciПолучить текущий цветной графический элемент. get_figlabelsВозвращает список существующих меток рисунка. get_fignumsВозвращает список существующих номеров рисунков. gridВключить или выключить сетку осей. hexbinСоздать график с гексагональной разбивкой. histПостроить гистограмму. hist2dСоздать 2D гистограмму. hlinesПостроить горизонтальные линии в каждой точке yотxminдоxmax.holdimreadПрочитать изображение из файла в массив.
imsaveСохранение массива в виде файла изображения. imshowОтображение изображения на оси. install_repl_displayhookУстановка обработчика отображения repl, чтобы любые устаревшие фигуры автоматически перерисовывались при возвращении управления в repl. ioffВыключение интерактивного режима. ionВключение интерактивного режима. isholdisinteractiveВозвращает состояние интерактивного режима. legendРазмещает легенду на оси. locator_paramsУправление поведением локаторов делений шкалы. loglogПостроение графика с логарифмической шкалой по осям x и y. magnitude_spectrumПостроение графика спектра амплитуд. marginsУстановка или получение отступов автомасштабирования. matshowОтображение массива как матрицы в новом окне фигуры. minorticks_offУдаление вспомогательных делений шкалы с текущего графика. minorticks_onОтображение вспомогательных делений шкалы на текущем графике. overpauseПауза на interval секунд. pcolorСоздание псевдоцветного графика двумерного массива. pcolormeshПостроение графика четырёхугольной сетки. phase_spectrumПостроение графика спектра фаз. pieПостроение круговой диаграммы. plotПостроение линий и/или маркеров на Axes.plot_dateГрафик с данными, содержащими даты. plotfileПостроение графика данных из файла. polarПостроение полярного графика. psdПостроение графика спектральной плотности мощности. quiverПостроение поля векторов в виде стрелок. quiverkeyДобавление ключа к графику векторов. rcУстановка текущих параметров rc. rc_contextВозвращает менеджер контекста для управления параметрами rc. rcdefaultsВосстановление параметров rc по внутренним значениям по умолчанию Matplotlib. rgridsПолучение или установка радиальных линий сетки на полярном графике. savefigСохранение текущей фигуры. scaУстановка текущей оси ax. scatterПостроение диаграммы рассеяния xпоy.sciУстановка текущего изображения. semilogxПостроение графика с логарифмической шкалой по оси x. semilogyПостроение графика с логарифмической шкалой по оси y.set_cmapУстановка цветовой палитры по умолчанию. setpУстановка свойства объекта художника. showОтображение фигуры. specgramПостроение спектрограммы. spyПостроение рисунка разреженности двумерного массива. stackplotОтрисовка стопки областей. stemСоздание графика стебля. stepПостроение графика ступенчатой функции. streamplotОтрисовка линий тока векторного потока. subplotВозвращает подграфик, расположенный в соответствии с заданным определением сетки. subplot2gridСоздание подграфика в сетке. subplot_toolОткрытие окна инструмента подграфиков для фигуры. subplotsСоздание фигуры и набора подграфиков. Эта утилита делает удобным создание распространенных макетов подграфиков, включая объект фигуры, в одном вызове.
subplots_adjustНастройка макета подграфиков. suptitleДобавление центрированного заголовка к рисунку. switch_backendПереключение системного бэкенда. tableДобавление таблицы на текущую ось. textДобавление текста на ось. thetagridsПолучение или установка расположения линий сетки по углу в полярном графике. tick_paramsИзменение внешнего вида делений и меток делений. ticklabel_formatИзменение ScalarFormatterпо умолчанию для линейных осей.tight_layoutАвтоматическая настройка параметров подграфиков для указанного отступа. titleУстановка заголовка текущей оси. tricontourОтрисовка контуров на неупорядоченной треугольной сетке. tricontourfОтрисовка контуров на неупорядоченной треугольной сетке. tripcolorСоздание псевдоцветного графика неупорядоченной треугольной сетки. triplotОтрисовка неупорядоченной треугольной сетки в виде линий и/или маркеров. twinxСоздание второй оси, которая использует ось x. twinyСоздание второй оси, которая использует ось y. uninstall_repl_displayhookУдаляет обработчик отображения matplotlib. violinplotСоздание графика «скрипка». vlinesОтрисовка вертикальных линий. xcorrОтрисовка взаимной корреляции между x и y. xkcdВключает режим рисования в стиле комиксов xkcd. xlabelУстановка метки оси x текущей оси. xlimПолучение или установка пределов оси x текущей оси. xscaleУстановка масштаба оси x. xticksПолучение или установка значений и меток делений оси x. ylabelУстановка метки оси y текущей оси. ylimПолучение или установка пределов оси y текущей оси. yscaleУстановка масштаба оси y. yticksПолучение или установка значений и меток делений оси y.
Объектно-ориентированный API
Большинство этих функций также существуют как методы в классе matplotlib.axes.Axes. Вы можете использовать их с «объектно-ориентированным» подходом к Matplotlib.
Хотя с модулем matplotlib.pyplot легко быстро генерировать графики, мы рекомендуем использовать объектно-ориентированный подход для большего контроля и настройки ваших графиков. См. методы в классе matplotlib.axes.Axes() для многих из тех же функций построения графиков. Примеры использования объектно-ориентированного подхода к Matplotlib см. на странице Примеры API.
Цвета в Matplotlib
Существует множество цветовых карт, которые вы можете использовать для сопоставления данных с цветовыми значениями. Ниже мы перечислим несколько способов использования цвета в Matplotlib.
Для более подробного ознакомления с цветовыми картами см. учебник Цветовые карты в Matplotlib.
-
matplotlib.pyplot.colormaps() -
Matplotlib предоставляет множество цветовых схем, и другие можно добавить с помощью
register_cmap(). Эта функция документирует встроенные цветовые схемы и также вернёт список всех зарегистрированных схем, если она вызвана.Вы можете установить цветовую схему для изображения, pcolor, scatter и т. д., используя ключевой аргумент:
imshow(X, cmap=cm.hot)
или используя функцию
set_cmap():imshow(X) pyplot.set_cmap('hot') pyplot.set_cmap('jet')В интерактивном режиме
set_cmap()обновит цветовую схему постфактум, что позволит вам увидеть, какая из них лучше всего подходит для ваших данных.Все встроенные цветовые схемы могут быть перевернуты путём добавления
_r: Например,gray_rявляется обратной схемойgray.Существует несколько распространённых цветовых схем, используемых в визуализации:
- Последовательные схемы
- для униполярных данных, которые прогрессируют от низких к высоким значениям
- Различающиеся схемы
- для биполярных данных, которые подчёркивают положительные или отрицательные отклонения от центрального значения
- Циклические схемы
- предназначены для построения значений, которые повторяются на концах, таких как фазовый угол, направление ветра или время суток
- Качественные схемы
- для номинальных данных, не имеющих внутренней упорядоченности, где цвет используется только для различения категорий
Matplotlib поставляется с 4 перцептуально однородными цветовыми картами, которые являются рекомендуемыми цветовыми картами для последовательных данных:
Цветовая карта Описание inferno перцептуально однородные оттенки чёрного-красного-жёлтого magma перцептуально однородные оттенки чёрного-красного-белого plasma перцептуально однородные оттенки синего-красного-жёлтого viridis перцептуально однородные оттенки синего-зелёного-жёлтого Следующие цветовые схемы основаны на цветовых спецификациях и дизайнах ColorBrewer, разработанных Синтией Брюэр:
Различающиеся схемы ColorBrewer (яркость максимальна в середине и уменьшается к разноцветным концам):
Цветовая карта Описание BrBG коричневый, белый, сине-зелёный PiYG розовый, белый, жёлто-зелёный PRGn фиолетовый, белый, зелёный PuOr оранжевый, белый, фиолетовый RdBu красный, белый, синий RdGy красный, белый, серый RdYlBu красный, жёлтый, синий RdYlGn красный, жёлтый, зелёный Spectral красный, оранжевый, жёлтый, зелёный, синий Последовательные схемы ColorBrewer (яркость монотонно убывает):
Цветовая карта Описание Blues белый до тёмно-синего BuGn белый, светло-синий, тёмно-зелёный BuPu белый, светло-синий, тёмно-фиолетовый GnBu белый, светло-зелёный, тёмно-синий Greens белый до тёмно-зелёного Greys белый до чёрного (нелинейно) Oranges белый, оранжевый, тёмно-коричневый OrRd белый, оранжевый, тёмно-красный PuBu белый, светло-фиолетовый, тёмно-синий PuBuGn белый, светло-фиолетовый, тёмно-зелёный PuRd белый, светло-фиолетовый, тёмно-красный Purples белый до тёмно-фиолетового RdPu белый, розовый, тёмно-фиолетовый Reds белый до тёмно-красного YlGn светло-жёлтый, тёмно-зелёный YlGnBu светло-жёлтый, светло-зелёный, тёмно-синий YlOrBr светло-жёлтый, оранжевый, тёмно-коричневый YlOrRd светло-жёлтый, оранжевый, тёмно-красный Качественные схемы ColorBrewer:
(Для построения номинальных данных используется
ListedColormap, а неLinearSegmentedColormap. Для разных количеств категорий рекомендуются разные наборы цветов.)- Accent
- Dark2
- Paired
- Pastel1
- Pastel2
- Set1
- Set2
- Set3
Также включен набор цветовых карт, полученных из одноимённых цветовых карт, поставляемых с Matlab:
Цветовая карта Описание autumn последовательные линейно увеличивающиеся оттенки от красного к оранжевому к жёлтому bone последовательная возрастающая чёрно-белая цветовая карта с оттенком синего, для эмуляции рентгеновской плёнки cool линейно убывающие оттенки от сине-голубого к пурпурно-розовому copper последовательные увеличивающиеся оттенки чёрного-медного flag повторяющийся красно-бело-сине-чёрный узор (не циклический на концах) gray последовательно линейно увеличивающаяся чёрно-белая шкала серого hot последовательная чёрно-красно-жёлто-белая, для эмуляции чёрного излучения тела при возрастающих температурах hsv циклический красный-жёлтый-зелёный-голубовато-синий-пурпурно-розовый-красный, сформированный изменением компонента оттенка в цветовом пространстве HSV jet спектральная карта с тёмными концами, сине-голубовато-жёлто-красная; основана на моделировании струи жидкости NCSA [1] pink последовательное увеличение пастельного чёрного-розового-белого, для создания оттенка сепии фотографий prism повторяющийся красно-жёлто-зелёно-сине-пурпурно-…-зелёный узор (не циклический на концах) spring линейно увеличивающиеся оттенки от пурпурно-розового к жёлтому summer последовательные линейно увеличивающиеся оттенки от зелёного к жёлтому winter линейно увеличивающиеся оттенки от синего к зелёному Включен набор палитр из пакета научной визуализации Yorick, эволюции пакета GIST, оба от Дэвида Х. Манро:
Цветовая карта Описание gist_earth цвета картографа от тёмно-синего глубокого океана до зелёных низменностей до коричневых высот до белых гор gist_heat последовательно возрастающая чёрно-красно-оранжево-белая, для эмуляции чёрного излучения тела от железного стержня, когда он нагревается gist_ncar псевдоспектральная чёрно-сине-зелёно-жёлто-красно-пурпурно-белая цветовая карта от Национального центра атмосферных исследований [2] gist_rainbow пробегает цвета в спектральном порядке от красного до фиолетового при полной насыщенности (как hsv, но не циклический) gist_stern «Специальная таблица цветов Штерна» из программного обеспечения Interactive Data Language Другие различные схемы:
Цветовая карта Описание afmhot последовательный чёрный-оранжевый-жёлтый-белый спектр чёрного тела, обычно используется в атомно-силовой микроскопии brg сине-красный-зелёный bwr различающаяся сине-бело-красная coolwarm различающаяся сине-серо-красная, предназначенная для устранения проблем с 3D затенением, дальтонизмом и порядком цветов [3] CMRmap «Цветовые карты по умолчанию на цветных изображениях часто воспроизводятся в виде непонятных черно-белых изображений. Предлагаемая цветовая карта поддерживает эстетически приятное цветовое изображение, которое автоматически воспроизводится в монотонно-сером с дискретными, количественно определяемыми уровнями насыщенности.» [4] cubehelix В отличие от большинства других цветовых схем, cubehelix была разработана Д.А. Грин, чтобы монотонно увеличиваться по восприятию яркости. Кроме того, при печати на черно-белом принтере PostScript схема даёт монотонно увеличивающуюся шкалу серого. Эта цветовая схема называется cubehelix, потому что значения r, g, b, которые она производит, можно визуализировать как сплющенную спираль вокруг диагонали в кубе цветов r, g, b. gnuplot традиционная схема pm3d gnuplot (чёрно-сине-красно-жёлтый) gnuplot2 последовательный цвет, печатаемый как серый (чёрно-сине-фиолетово-жёлто-белый) ocean зелёно-сине-белый rainbow спектральная пурпурно-сине-зелёно-жёлто-оранжево-красная цветовая карта с расходящейся яркостью seismic расходящаяся сине-бело-красная nipy_spectral чёрно-фиолетово-сине-зелёно-жёлто-красно-белая шкала, первоначально из проекта Neuroimaging in Python terrain цвета картографа, сине-зелёно-жёлто-коричнево-белые, первоначально из IGOR Pro Следующие цветовые схемы избыточны и могут быть удалены в будущих версиях. Рекомендуется использовать названия в описаниях вместо них, что даёт идентичный результат:
Цветовая карта Описание gist_gray идентично gray gist_yarg идентично gray_r binary идентично gray_r spectral идентично nipy_spectral [5] Примечания
[1] Цветовые карты радуги, jetв частности, считаются плохим выбором для научной визуализации многими исследователями: Rainbow Color Map (Still) Considered Harmful[2] Похоже на «BkBlAqGrYeOrReViWh200» из NCAR Command Language. См. Color Table Gallery [3] См. Diverging Color Maps for Scientific Visualization Кеннета Мореленда.
[4] См. Карта цветов для эффективного черно-белого рендеринга изображений с цветовой шкалой Кэри Раппапорт [5] Изменено для отличия от карты цветов Spectral от ColorBrewer. spectral()по-прежнему работает, ноset_cmap('nipy_spectral')рекомендуется для ясности.
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/pyplot_summary.html