Ниже описаны несколько распространенных подходов к построению графиков с помощью Matplotlib.
API Pyplot
Модуль matplotlib.pyplot содержит функции, которые позволяют быстро генерировать различные виды графиков. Примеры использования модуля matplotlib.pyplot можно найти в учебнике по Pyplot или в примерах Pyplot. Также рекомендуется ознакомиться с объектно-ориентированным подходом к построению графиков, описанным ниже.
-
matplotlib.pyplot.plotting()[source]
-
Функция Описание 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Удалить заданную Axesax из текущей фигуры.drawПерерисовать текущую фигуру. errorbarПостроить график y по x с линиями и/или маркерами с ошибками. 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. hold
imreadЧтение изображения из файла в массив. 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Построение графика y в зависимости от x с линиями и/или маркерами. plot_dateПостроение графика данных, содержащих даты. plotfileПостроение графика данных из файла. polarПостроение полярного графика. psdПостроение графика плотности спектральной мощности. quiverПостроение 2-мерного поля стрелок. quiverkeyДобавление ключа к графику стрелок. rcУстановить текущие параметры rc. rc_contextВозвращает контекстный менеджер для управления параметрами rc. rcdefaultsВосстановление параметров rc по умолчанию Matplotlib. rgridsПолучение или установка радиальных линий сетки на полярном графике. savefigСохранение текущей фигуры. scaУстановить текущий объект Axes в ax. scatterДиаграмма рассеяния y по x с изменяемым размером и/или цветом маркеров. sciУстановить текущее изображение. semilogxПостроение графика с логарифмической шкалой по оси x. semilogyПостроение графика с логарифмической шкалой по оси y. set_cmapУстановить цветовую карту по умолчанию. setpУстановить свойство объекта художника. showОтобразить фигуру. specgramПостроить спектрограмму. spectralУстановить цветовую карту на "spectral". spyПостроение схемы разреженности на 2-мерном массиве. stackplotРисует график с накопленными областями. stemСоздать график стебля. stepПостроить ступенчатый график. streamplotРисует линии потока векторного поля. subplotВозвращает поддиаграмму в заданной позиции на сетке. subplot2gridСоздает ось в заданном месте внутри регулярной сетки. subplot_toolЗапускает окно инструмента subplot для фигуры.
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()[source]
-
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 была разработана Д.А. Грином для монотонного возрастания воспринимаемой яркости. Кроме того, при печати на черно-белом постскрипте схеме получается градация серого с монотонно возрастающей яркостью. Эта цветовая схема называется 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–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/2.2.3/api/pyplot_summary.html