Spec-Zone.ru › Matplotlib 2.2

Ниже описаны несколько распространенных подходов к построению графиков с помощью Matplotlib.

  • API Pyplot
  • Объектно-ориентированный API
  • Цвета в 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 Удалить заданную Axes ax из текущей фигуры.
draw Перерисовать текущую фигуру.
errorbar Построить график y по x с линиями и/или маркерами с ошибками.
eventplot Построить идентичные параллельные линии в заданных позициях.
figimage Добавить непересэмплированное изображение в фигуру.
figlegend Поместить легенду в фигуру.
fignum_exists
figtext Добавить текст в фигуру.
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 Включение интерактивного режима.
ishold
isinteractive Возвращает состояние интерактивного режима.
legend Размещает легенду на осях.
locator_params Управление поведением локаторов делений.
loglog Построение графика с логарифмической шкалой по обеим осям (x и y).
magnitude_spectrum Построение спектра амплитуд.
margins Устанавливает или извлекает отступы автомасштабирования.
matshow Отображение массива как матрицы в новом окне фигуры.
minorticks_off Удаление вспомогательных делений с текущего графика.
minorticks_on Отображение вспомогательных делений на текущем графике.
over
pause Пауза на 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 Кеннета Мореленда.
END_OF_DOCUMENT_MARKER
[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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API