Spec-Zone.ru › Matplotlib 2.1

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

  • API Pyplot
  • Объектно-ориентированный API
  • Цвета в 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_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 Построение линий и/или маркеров на 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 Создание фигуры и набора подграфиков. Эта утилита делает удобным создание распространенных макетов подграфиков, включая объект фигуры, в одном вызове.
END_OF_DOCUMENT_MARKER
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 Кеннета Мореленда.
END_OF_DOCUMENT_MARKER
[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

Spec-Zone.ru

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