Справочная документация Matplotlib

Matplotlib — самая широко используемая библиотека визуализации данных в Python, поддерживающая создание статических, анимированных и интерактивных графиков.

В этом документе всесторонне систематизированы функции и методы всех публичных интерфейсов Matplotlib, что позволяет быстро находить сведения об их возможностях и использовании.


Два основных программных интерфейса

Matplotlib предоставляет два стиля использования, подходящих для разных сценариев.

Характеристика Интерфейс Axes (явный/объектно-ориентированный) Интерфейс pyplot (неявный/функциональный)
Использование Сначала создайте объекты Figure и Axes, затем вызывайте их методы Непосредственно вызывайте функции модуля pyplot, чтобы неявно работать с текущей фигурой
Применимые сценарии Сложные графики, несколько подграфиков, требуется точный контроль Быстрое построение графиков, интерактивное исследование, простые графики
Пример кода fig, ax = plt.subplots(); ax.plot(x, y) plt.plot(x, y); plt.title("Title")
Уровень рекомендации Рекомендуется(Понятнее и более управляемо) Подходит для простых сценариев и быстрого прототипирования

Интерфейс Axes — это официально рекомендуемый стиль программирования. Его логика кода понятнее и меньше подвержена ошибкам при работе с несколькими подграфиками и сложными диаграммами. Для быстрого ознакомления ниже перечислены как функции pyplot, так и соответствующие им методы Axes.

ФункцияСвязанные материалы
Функция plot() в Matplotlibplot()
Функция scatter() в Matplotlibscatter()
Функция bar() / barh() в Matplotlibbar(), barh(), bar_label(), grouped_bar()
Функция hist() в Matplotlibhist()
Функция Matplotlib pie()pie(), pie_label()
Функция Matplotlib imshow()imshow()
Функция Matplotlib subplots()subplots()
Функция Matplotlib figure()figure()
Функция Matplotlib savefig()savefig()
Функция Matplotlib errorbar()errorbar()
Функция boxplot() в Matplotlibboxplot()
Функция contour() / contourf() в Matplotlibcontour(), contourf(), clabel()
Функция fill_between() / fill_betweenx() в Matplotlibfill_between(), fill_betweenx()
Функция legend() в Matplotliblegend()
Функция text() / annotate() в Matplotlibtext(), annotate()
Функции заголовка и меток в Matplotlibtitle(), xlabel(), ylabel(), suptitle(), supxlabel(), supylabel()
Функция colorbar() в Matplotlibcolorbar()
Функции управления фигурами и осями Matplotlibaxes(), cla(), clf(), close(), delaxes(), fignum_exists(), gca(), gcf(), get_figlabels(), get_fignums(), sca(), subplot(), subplot2grid(), subplot_mosaic(), twinx(), twiny()
Расширенные функции построения графиков Matplotlibstep(), stem(), eventplot(), stackplot(), broken_barh(), vlines(), hlines(), fill(), loglog(), semilogx(), semilogy()
Функции диапазонов и векторных полей Matplotlibaxhline(), axhspan(), axvline(), axvspan(), axline(), quiver(), quiverkey(), barbs(), streamplot()
Функции спектрального анализа Matplotlibacorr(), xcorr(), psd(), csd(), specgram(), cohere(), angle_spectrum(), magnitude_spectrum(), phase_spectrum()
Функции построения 2D-данных и статистических графиков Matplotlibhist2d(), hexbin(), stairs(), matshow(), pcolor(), pcolormesh(), spy(), figimage(), ecdf(), violinplot()
Функции триангуляции и полярных координат Matplotlibtriplot(), tripcolor(), tricontour(), tricontourf(), polar(), rgrids(), thetagrids()
Функции настройки осей Matplotlibxlim(), ylim(), xscale(), yscale(), xticks(), yticks(), tick_params(), ticklabel_format(), locator_params(), minorticks_on(), minorticks_off(), grid(), axis(), box(), autoscale()
Функции компоновки и настройки Matplotlibsubplots_adjust(), tight_layout(), margins(), subplot_tool(), rc(), rc_context(), rcdefaults(), clim(), get_cmap(), set_cmap(), gci(), sci(), imread(), imsave(), draw(), ion(), ioff(), pause(), switch_backend(), show(), isinteractive(), install_repl_displayhook(), uninstall_repl_displayhook(), draw_if_interactive()
Служебные функции и функции взаимодействия Matplotlibconnect(), disconnect(), ginput(), waitforbuttonpress(), findobj(), get(), setp(), getp(), get_current_fig_manager(), new_figure_manager(), set_loglevel(), xkcd()
Функции текста и аннотаций уровня фигуры Matplotlibfigtext(), figlegend(), table(), arrow()

Модуль pyplot - полный список функций

pyplot — это интерфейс верхнего уровня Matplotlib, предоставляющий возможности построения графиков, подобные MATLAB. Ниже приведены все функции в соответствии с официальной категоризацией.

1. Управление фигурами и осями

Функции для создания и управления Figure (холст) и Axes (системы координат/подграфики).

ФункцияОписание
figure()Создать новую Figure или активировать существующую Figure
subplots()РекомендуетсяСоздать Figure и набор подграфиков Axes
subplot()Добавить один подграфик в текущую Figure (по индексу строки и столбца)
subplot2grid()Создать подграфик в указанной позиции в сеточном макете
subplot_mosaic()Создавать сложные неравномерные макеты с помощью строк меток
axes()Добавить Axes в текущую Figure
gca()Получить текущий объект Axes
gcf()Получить текущий объект Figure
sca()Установить текущий Axes
cla()Очистить текущий Axes
clf()Очистить текущий Figure
close()Закрыть окна Figure
delaxes()Удалить указанный Axes из Figure
fignum_exists()Проверяет, существует ли Figure с указанным номером
get_figlabels()Возвращает список меток всех Figure
get_fignums()Возвращает список номеров всех Figure
twinx()Создает двойные оси y с общей осью x
twiny()Создает двойные оси x с общей осью y

2. Основы построения графиков

Наиболее часто используемые функции построения графиков для типов диаграмм.

ФункцияОписание
plot()Построить линейный график (наиболее часто используется)
scatter()Построить диаграмму рассеяния с поддержкой отображения размера/цвета/alpha
bar()Построить вертикальную столбчатую диаграмму
barh()Построить горизонтальную столбчатую диаграмму
bar_label()Добавить числовые подписи на столбцах столбчатой диаграммы
grouped_bar()Построить сгруппированную столбчатую диаграмму
pie()Построить круговую диаграмму
pie_label()Добавить подписи на круговой диаграмме
stem()Построить стеблевую диаграмму (спичечную диаграмму)
eventplot()Построить диаграмму событий (несколько горизонтальных линий, отмечающих позиции событий)
step()Построить ступенчатый график
fill()Нарисовать заполненный многоугольник
fill_between()Заполнить область между двумя горизонтальными кривыми
fill_betweenx()Заполнить область между двумя вертикальными кривыми
stackplot()Построить диаграмму с накоплением областей
broken_barh()Построить горизонтальную разрывную столбчатую диаграмму (в стиле диаграммы Ганта)
vlines()Построить вертикальную опорную линию
hlines()Построить горизонтальную опорную линию
errorbar()Построить линейный график с планками погрешностей
loglog()Линейный график в логарифмическом масштабе по обеим осям
semilogx()График с логарифмической осью x
semilogy()График с логарифмической осью y
polar()График в полярных координатах

3. Диапазоны

Нарисуйте горизонтальные и вертикальные опорные линии и заштрихованные области.

ФункцияОписание
axhline()Добавить горизонтальную линию, охватывающую всю область Axes
axhspan()Добавить горизонтальную заштрихованную полосу, охватывающую всю область Axes
axvline()Добавить вертикальную линию, проходящую через всю область Axes
axvspan()Добавить вертикальную затенённую полосу, охватывающую всю область Axes
axline()Добавить бесконечную линию, проходящую через две точки

4. Спектральный анализ

Функции для обработки сигналов и спектральной визуализации.

ФункцияОписание
acorr()Построить график автокорреляции
xcorr()Построить график кросс-корреляции
angle_spectrum()Построить угловой спектр
magnitude_spectrum()Построить амплитудный спектр
phase_spectrum()Построить фазовый спектр
psd()Построить спектральную плотность мощности
csd()Построить взаимную спектральную плотность
cohere()Построить когерентность
specgram()Построить спектрограмму (частотно-временной график)

5. Статистические графики

Построить графики, связанные со статистическими распределениями.

ФункцияОписание
boxplot()Построить ящичную диаграмму
violinplot()Построить скрипичную диаграмму
ecdf()Построить эмпирическую функцию распределения (ECDF)

6. Биннинг и гистограммы

ФункцияОписание
hist()Построить одномерную гистограмму
hist2d()Построить двумерную гистограмму
hexbin()Построить график hexbin
stairs()Построить ступенчатую гистограмму (новая версия, заменяет режим step функции hist)

7. Контуры

ФункцияОписание
contour()Построить контурные линии
contourf()Построить заполненные контуры
clabel()Добавить подписи к контурам

8. Двумерные массивы и изображения

Функции визуализации для отображения двумерных данных, матриц и изображений.

ФункцияОписание
imshow()Отобразить изображение или двумерный массив (тепловая карта)
matshow()Отобразить матрицу как изображение в новом Figure
pcolor()Нарисовать псевдоцветную сетку (создаёт PolyCollection)
pcolormesh()Нарисовать псевдоцветную сетку (создаёт QuadMesh, более высокая производительность)
spy()Нарисовать структуру ненулевых элементов разрежённой матрицы
figimage()Разместить изображение на уровне Figure (а не Axes)

9. Неструктурированные треугольные сетки

ФункцияОписание
triplot()Нарисовать неструктурированную треугольную сетку
tripcolor()Нарисовать псевдоцветной график на треугольной сетке
tricontour()Нарисовать контурные линии на треугольной сетке
tricontourf()Нарисовать заполненные контуры на треугольной сетке

10. Текст и аннотации

ФункцияОписание
text()Добавить текст в указанных координатах в Axes
figtext()Добавить текст в указанной позиции на Figure
annotate()Добавить аннотацию со стрелкой
arrow()Добавить стрелку
legend()Добавить легенду в Axes
figlegend()Добавить легенду на уровне Figure
table()Добавить таблицу в Axes

11. Векторные поля

ФункцияОписание
quiver()Построить векторное поле (quiver plot)
quiverkey()Добавить ключ легенды к векторному полю
barbs()Построить график барбов (показывающий скорость и направление ветра в метеорологии)
streamplot()Построить график линий тока

12. Настройка осей

Функции для задания пределов осей, делений, подписей и масштабов.

ФункцияОписание
title()Установить заголовок Axes
suptitle()Установить общий заголовок Figure
xlabel()Установить подпись оси x
ylabel()Установить подпись оси y
xlim()Получить или установить диапазон оси x
ylim()Получить или установить диапазон оси y
xscale()Установить масштаб оси x (linear/log/symlog/logit...)
yscale()Задать масштаб оси y (linear/log/symlog/logit...)
xticks()Получить или задать позиции и подписи делений оси x
yticks()Получить или задать позиции и подписи делений оси y
tick_params()Настроить внешний вид делений (направление, цвет, размер, поворот подписей и т. д.)
ticklabel_format()Задать формат подписей делений (экспоненциальная запись и т. д.)
locator_params()Управлять параметрами локатора делений
minorticks_on()Показать малые деления
minorticks_off()Скрыть малые деления
rgrids()Получить или задать радиальные линии сетки полярного графика
thetagrids()Получить или задать угловые линии сетки полярного графика
grid()Включить или отключить линии сетки
axis()Удобная функция для получения или задания некоторых свойств оси
box()Включить или выключить границы Axes
autoscale()Автоматически масштабировать оси под данные

13. Компоновка

Функции для управления расположением и отступами подграфиков.

ФункцияОписание
subplots_adjust()Вручную настраивать отступы подграфиков (left/right/top/bottom/wspace/hspace)
tight_layout()Автоматически настраивать параметры подграфиков для создания плотной компоновки
margins()Задать или получить отступы данных осей
subplot_tool()Запустить интерактивное окно инструмента настройки подграфиков

14. Цветовая карта

Функции, связанные с цветовыми картами и цветовыми шкалами.

ФункцияОписание
colorbar()Добавить цветовую шкалу
clim()Установить диапазон данных цветовой карты
get_cmap()Получить объект цветовой карты по указанному имени
set_cmap()Установить цветовую карту по умолчанию
gci()Получить текущий объект изображения, поддерживающий цветовую карту
sci()Установить текущий объект изображения с возможностью применения цветовой карты
imread()Прочитать изображение из файла в массив
imsave()Сохранить массив как файл изображения
colormapsОбъект реестра цветовых карт
color_sequencesОбъект реестра цветовых последовательностей

15. Конфигурация

Функции для управления глобальными параметрами конфигурации Matplotlib.

ФункцияОписание
rc()Установить параметры rc (можно задать пакетно)
rc_context()Контекстный менеджер для временной установки параметров rc
rcdefaults()Восстановить все параметры rc до значений по умолчанию

16. Вывод и взаимодействие

Функции для управления отображением фигур, сохранением и режимами взаимодействия.

ФункцияОписание
show()Отобразить все открытые фигуры
savefig()Сохранить текущую фигуру в файл
draw()Принудительно перерисовать текущую фигуру
draw_if_interactive()Отобразить Figure, если включен интерактивный режим
pause()Приостановить на указанное число секунд (обрабатывая события в течение этого времени)
ion()Включить интерактивный режим
ioff()Выключить интерактивный режим
isinteractive()Возвращает, включен ли в данный момент интерактивный режим
install_repl_displayhook()Установить хук отображения REPL (чтобы Figure отображались автоматически)
uninstall_repl_displayhook()Удалить хук отображения REPL
switch_backend()Переключить бэкенд

17. Другие служебные функции

ФункцияОписание
connect()Привязать функцию обратного вызова события
disconnect()Отвязать функцию обратного вызова события
ginput()Получить координатные точки с помощью щелчков мыши
waitforbuttonpress()Ожидать нажатия мыши или клавиатуры и вернуть тип события
findobj()Найти объекты Artist, соответствующие заданному условию
get()Получить значение свойства объекта Artist
getp()Получить свойства объекта Artist (псевдоним для get)
setp()Установить свойства объекта Artist
get_current_fig_manager()Получить оконный менеджер текущего Figure
new_figure_manager()Создать новый менеджер Figure для указанного Figure
set_loglevel()Установить уровень логирования Matplotlib
xkcd()Переключиться на стиль xkcd (нарисованный от руки комикс)

Объект Axes — полный список методов

Axes (объект Axes) представляет подграфик внутри Figure, содержащий данные, деления, метки, заголовки и т. д. Ниже приведён полный список всех методов, организованных по официальным категориям.

1. Базовые методы построения графиков

МетодОписание
Axes.plot()Линейный график
Axes.scatter()Точечная диаграмма
Axes.bar()Вертикальная столбчатая диаграмма
Axes.barh()Горизонтальная столбчатая диаграмма
Axes.bar_label()Добавить подписи значений на столбцах
Axes.grouped_bar()Сгруппированная столбчатая диаграмма
Axes.pie()Круговая диаграмма
Axes.pie_label()Подписи круговой диаграммы
Axes.stem()Стеблевая диаграмма
Axes.eventplot()График событий
Axes.step()Ступенчатый график
Axes.fill()Залитый многоугольник
Axes.fill_between()Горизонтальная заполненная область
Axes.fill_betweenx()Вертикальная заполненная область
Axes.stackplot()Диаграмма с областями с накоплением
Axes.broken_barh()Горизонтальная диаграмма с разрывами
Axes.vlines()Вертикальная опорная линия
Axes.hlines()Горизонтальная опорная линия
Axes.errorbar()Линейный график с планками погрешностей
Axes.loglog()Логарифмический масштаб по обеим осям
Axes.semilogx()Логарифмический масштаб по оси x
Axes.semilogy()логарифмический масштаб по оси y

2. Методы диапазонов

МетодОписание
Axes.axhline()Горизонтальная опорная линия
Axes.axvline()Вертикальная опорная линия
Axes.axhspan()Горизонтальная затенённая полоса
Axes.axvspan()Вертикальная затенённая полоса
Axes.axline()Бесконечная линия через две точки

3. Методы спектрального анализа

МетодОписание
Axes.acorr()График автокорреляции
Axes.xcorr()График взаимной корреляции
Axes.angle_spectrum()Угловой спектр
Axes.magnitude_spectrum()Амплитудный спектр
Axes.phase_spectrum()Фазовый спектр
Axes.psd()Спектральная плотность мощности
Axes.csd()Взаимная спектральная плотность
Axes.cohere()Когерентность
Axes.specgram()Спектрограмма (частотно-временной график)

4. Статистические методы

МетодОписание
Axes.boxplot()Ящичная диаграмма
Axes.bxp()Построить ящичную диаграмму по предварительно вычисленным статистикам
Axes.violinplot()Скрипичная диаграмма
Axes.violin()Построение скрипичной диаграммы по предварительно вычисленным статистикам
Axes.ecdf()Эмпирическая функция распределения

5. Методы разбиения на интервалы и гистограммы

МетодОписание
Axes.hist()Гистограмма
Axes.hist2d()Двумерная гистограмма
Axes.hexbin()Гексагональная диаграмма
Axes.stairs()Ступенчатая гистограмма

6. Методы контуров

МетодОписание
Axes.contour()Контур
Axes.contourf()Заполненный контур
Axes.clabel()Подписи контуров

7. Методы двумерных массивов

МетодОписание
Axes.imshow()Отображение изображения/тепловой карты
Axes.matshow()Изображение матрицы
Axes.pcolor()Псевдоцветная сетка (PolyCollection)
Axes.pcolorfast()Быстрый псевдоцвет (отрисовывается с помощью imshow)
Axes.pcolormesh()Псевдоцветная сетка (QuadMesh, рекомендуется)
Axes.spy()Шаблон разреженной матрицы

8. Методы неструктурированной треугольной сетки

МетодОписание
Axes.triplot()Линии треугольной сетки
Axes.tripcolor()Псевдоцвет треугольной сетки
Axes.tricontour()Контур треугольной сетки
Axes.tricontourf()Заполненный контур треугольной сетки

9. Методы текста и аннотаций

МетодОписание
Axes.text()Добавить текст
Axes.annotate()Добавить аннотацию со стрелкой
Axes.table()Добавить таблицу
Axes.arrow()Добавить стрелку
Axes.inset_axes()Создать врезные оси внутри Axes
Axes.indicate_inset()Отметить область врезных осей на родительском Axes
Axes.indicate_inset_zoom()Отметить увеличенную область врезных осей
Axes.secondary_xaxis()Добавить вторичную ось X (отображать те же данные в другом месте)
Axes.secondary_yaxis()Добавить вторичную ось y

10. Методы векторного поля

МетодОписание
Axes.quiver()Векторное поле (диаграмма quiver)
Axes.quiverkey()Масштабная линейка легенды векторного поля
Axes.barbs()График ветровых барбов
Axes.streamplot()График линий тока

11. Методы очистки

МетодОписание
Axes.cla()Очистить всё содержимое в Axes
Axes.clear()Очистить Axes (то же, что cla())

12. Методы оформления

МетодОписание
Axes.axis()Задать видимость оси или пределы
Axes.set_axis_off()Скрыть оси
Axes.set_axis_on()Показать оси
Axes.set_frame_on()Показать рамку Axes
Axes.get_frame_on()Получить, видима ли рамка
Axes.set_axisbelow()Установить, находятся ли сетка/деления под данными
Axes.get_axisbelow()Получить уровень сетки/делений
Axes.grid()Установить линии сетки
Axes.get_facecolor()Получить цвет фона Axes
Axes.set_facecolor()Установить цвет фона Axes

13. Циклирование свойств

МетодОписание
Axes.set_prop_cycle()Задать цикл свойств, таких как цвет линии/стиль линии

14. Управление осями и делениями

Доступ к осям:

МетодОписание
Axes.xaxis / Axes.yaxisПолучить объект Axis для оси x/y (свойство)
Axes.get_xaxis() / get_yaxis()Получить объект Axis для оси x/y

Пределы и направление оси:

МетодОписание
Axes.set_xlim() / get_xlim()Задать/получить диапазон оси x
Axes.set_ylim() / get_ylim()Установка/получение диапазона оси y
Axes.set_xbound() / get_xbound()Установка/получение нижней и верхней границ оси x
Axes.set_ybound() / get_ybound()Установка/получение нижней и верхней границ оси y
Axes.invert_xaxis()Обратить направление оси x
Axes.invert_yaxis()Обратить направление оси y
Axes.xaxis_inverted() / yaxis_inverted()Проверить, инвертирована ли ось
Axes.set_xinverted() / get_xinverted()Установить/получить, перевёрнута ли ось x
Axes.set_yinverted() / get_yinverted()Установить/получить, перевёрнута ли ось y
Axes.update_datalim()Расширить пределы данных новыми точками данных

Подписи осей и легенда:

МетодОписание
Axes.set_xlabel() / get_xlabel()Установить/получить подпись оси x
Axes.set_ylabel() / get_ylabel()Установить/получить подпись оси y
Axes.label_outer()Оставлять подписи делений только на самых внешних подграфиках
Axes.set_title() / get_title()Установить/получить заголовок Axes
Axes.legend()Добавить легенду
Axes.get_legend()Получить текущий объект легенды
Axes.get_legend_handles_labels()Получить дескрипторы и подписи легенды

Масштаб оси:

МетодОписание
Axes.set_xscale() / get_xscale()Установить/получить масштаб оси X
Axes.set_yscale() / get_yscale()Установить/получить масштаб оси y

Автоматическое масштабирование и отступы:

МетодОписание
Axes.autoscale()Автоматически масштабировать область просмотра под данные
Axes.autoscale_view()Автоматически масштабировать только область просмотра (без изменения отступов)
Axes.margins()Установить или получить отступы данных
Axes.relim()Пересчитать пределы данных на основе текущего Artist
Axes.use_sticky_edges()Использовать залипающие отступы
Axes.set_xmargin() / get_xmargin()Установить/получить отступ по оси X
Axes.set_ymargin() / get_ymargin()Установить/получить отступ по оси Y
Axes.set_autoscale_on() / get_autoscale_on()Установить/получить, включено ли автомасштабирование
Axes.set_autoscalex_on() / get_autoscalex_on()Установить/получить, автомасштабируется ли ось X
Axes.set_autoscaley_on() / get_autoscaley_on()Установить/получить, автомасштабируется ли ось Y

Соотношение сторон:

МетодОписание
Axes.set_aspect() / get_aspect()Установить/получить соотношение сторон осей ('equal'/'auto'/числовое значение)
Axes.set_box_aspect() / get_box_aspect()Установить/получить соотношение сторон прямоугольной области Axes
Axes.apply_aspect()Применить текущие настройки соотношения сторон
Axes.set_adjustable() / get_adjustable()Установить/получить регулируемое направление ('box'/'datalim')

Деления и подписи делений:

МетодОписание
Axes.set_xticks() / get_xticks()Установить/получить позиции делений по оси x
Axes.set_yticks() / get_yticks()Установка/получение позиций делений по оси Y
Axes.set_xticklabels() / get_xticklabels()Установка/получение подписей делений по оси X
Axes.set_yticklabels() / get_yticklabels()Установка/получение подписей делений по оси Y
Axes.get_xmajorticklabels()Получение подписей основных делений по оси X
Axes.get_xminorticklabels()Получение подписей минорных делений по оси X
Axes.get_ymajorticklabels()Получение подписей основных делений по оси Y
Axes.get_yminorticklabels()Получить подписи малых делений оси y
Axes.get_xgridlines()Получить линии сетки оси x
Axes.get_ygridlines()Получить линии сетки оси y
Axes.get_xticklines()Получить линии делений оси x
Axes.get_yticklines()Получить линии делений оси y
Axes.xaxis_date()Установить для делений оси x формат даты
Axes.yaxis_date()Установить деления оси Y в формате даты
Axes.minorticks_on()Показать малые деления
Axes.minorticks_off()Скрыть малые деления
Axes.ticklabel_format()Задать формат подписей делений
Axes.tick_params()Настроить параметры внешнего вида делений
Axes.locator_params()Управлять параметрами локатора делений

15. Единицы

МетодОписание
Axes.convert_xunits()Преобразовать значения x с помощью преобразователя единиц
Axes.convert_yunits()Преобразовать значения y с помощью преобразователя единиц
Axes.have_units()Проверить, зарегистрирован ли преобразователь единиц

16. Добавление Artist-объектов

МетодОписание
Axes.add_artist()Добавить любой объект Artist
Axes.add_child_axes()Добавить дочерние Axes
Axes.add_collection()Добавить объект Collection
Axes.add_container()Добавить объект Container
Axes.add_image()Добавить объект AxesImage
Axes.add_line()Добавить объект Line2D
Axes.add_patch()Добавить объект Patch
Axes.add_table()Добавить объект Table

17. Двойные оси и общие оси

МетодОписание
Axes.twinx()Создать двойную ось Y с общей осью X
Axes.twiny()Создать парную ось x с общей осью y
Axes.sharex()Сделать ось x общей с другим Axes
Axes.sharey()Сделать ось y общей с другим Axes
Axes.get_shared_x_axes()Получить объект Grouper для общих осей x
Axes.get_shared_y_axes()Получить объект Grouper для общих осей y

18. Позиция Axes

МетодОписание
Axes.get_position() / set_position()Получить/задать позицию и размер Axes в Figure
Axes.get_anchor() / set_anchor()Получить/задать точку привязки (фиксированное положение) Axes
Axes.get_axes_locator() / set_axes_locator()Получить/задать функцию обратного вызова локатора Axes
Axes.get_subplotspec() / set_subplotspec()Получить/задать объект SubplotSpec
Axes.reset_position()Сбросить положение Axes до исходного значения

19. Асинхронность/События

МетодОписание
Axes.staleОтмечает, нужно ли перерисовывать Artist (свойство)
Axes.pchanged()Пометить событие изменения свойства
Axes.add_callback()Добавить обратный вызов изменения свойства
Axes.remove_callback()Удалить обратный вызов изменения свойства

20. Взаимодействие

МетодОписание
Axes.can_pan() / can_zoom()Возвращает, включены ли панорамирование/масштабирование
Axes.set_navigate() / get_navigate()Установить/получить, активна ли панель навигации
Axes.set_navigate_mode() / get_navigate_mode()Установить/получить режим навигации
Axes.start_pan() / drag_pan() / end_pan()Начало/перетаскивание/завершение операции панорамирования
Axes.format_coord()Форматировать строку координат, отображаемую на панели инструментов
Axes.format_cursor_data()Форматировать значение данных в позиции курсора
Axes.format_xdata() / format_ydata()Форматировать значения данных x/y
Axes.mouseover()Определить, находится ли мышь над Axes
Axes.in_axes()Определить, находится ли точка внутри Axes
Axes.contains() / contains_point()Определить, содержит ли Artist точку
Axes.get_cursor_data()Получить данные в позиции курсора
Axes.get_forward_navigation_events() / set_forward_navigation_events()Получить/установить перенаправление событий навигации

21. Запрос дочерних Artist

МетодОписание
Axes.get_children()Получить все дочерние Artist
Axes.get_images()Получить все объекты изображений
Axes.get_lines()Получить все объекты линий
Axes.findobj()Найти дочерние объекты Artist, удовлетворяющие условиям

22. Рисование

МетодОписание
Axes.draw()Отрисовать Axes
Axes.draw_artist()Нарисовать один Artist (низкоуровневый метод)
Axes.redraw_in_frame()Перерисовать внутри кадра
Axes.get_window_extent()Получить границы Axes в окне отображения
Axes.get_tightbbox()Получить точную ограничивающую рамку Axes
Axes.get_rasterization_zorder() / set_rasterization_zorder()Получить/задать порог zorder растеризации

23. Проекция (переопределяется подклассами)

МетодОписание
Axes.nameИмя проекции (например, 'rectilinear', 'polar')
Axes.get_xaxis_transform() / get_yaxis_transform()Получить преобразование оси x/y
Axes.get_data_ratio()Получить соотношение сторон данных
Axes.get_xaxis_text1_transform()преобразование нижней подписи оси X
Axes.get_xaxis_text2_transform()преобразование верхней подписи оси X
Axes.get_yaxis_text1_transform()преобразование левой подписи оси Y
Axes.get_yaxis_text2_transform()преобразование правой подписи оси Y

24. Другие методы

МетодОписание
Axes.set()Пакетная установка свойств
Axes.zorderПолучение/установка zorder (свойство)
Axes.get_figure()Получить владеющий объект Figure
Axes.figureОбъект Figure-владелец (свойство)
Axes.remove()Удалить себя из Figure
Axes.has_data()Проверить наличие данных
Axes.get_default_bbox_extra_artists()Получить Artists, которые будут дополнительно включены в вычисление ограничивающего прямоугольника
Axes.get_transformed_clip_path_and_affine()Получить преобразованный путь отсечения
Axes.viewLimДиапазон отображения (свойство)
Axes.dataLimДиапазон данных (свойство)
Axes.spinesСловарь границ (свойство)

Объект Figure — полный список методов

Figure — это контейнер верхнего уровня всего графика, управляющий всеми Axes, Artists и компоновкой.

1. Добавление Axes и SubFigures

МетодОписание
Figure.subplots()РекомендуетсяСоздать сетку подграфиков Axes
Figure.add_subplot()Добавить один подграфик по позиции строки и столбца
Figure.add_axes()Добавить Axes в указанной позиции и размере
Figure.subplot_mosaic()Создать сложные компоновки подграфиков с использованием макета меток
Figure.add_gridspec()Добавить объект макета GridSpec
Figure.subfigures()Создать вложенную подфигуру
Figure.add_subfigure()Добавить одну SubFigure
Figure.axesСписок Axes (свойство)
Figure.get_axes()Получить все Axes
Figure.delaxes()Удалить указанные Axes

2. Сохранение

МетодОписание
Figure.savefig()Сохранить Figure в файл

3. Аннотации уровня Figure

МетодОписание
Figure.suptitle() / get_suptitle()Установить/получить suptitle Figure
Figure.supxlabel() / get_supxlabel()Установить/получить подпись оси X уровня Figure
Figure.supylabel() / get_supylabel()Установить/получить подпись оси Y уровня Figure
Figure.colorbar()Добавить цветовую шкалу
Figure.legend()Добавить глобальную легенду
Figure.text()Добавить текст на уровне Figure
Figure.align_labels()Выровнять подписи осей всех подграфиков
Figure.align_xlabels()Выровнять подписи оси X всех подграфиков
Figure.align_ylabels()Выровнять подписи оси Y всех подграфиков
Figure.align_titles()Выровнять заголовки всех подграфиков
Figure.autofmt_xdate()Автоматически поворачивать подписи делений даты

4. Геометрия Figure

МетодОписание
Figure.set_size_inches() / get_size_inches()Установить/получить размер Figure (в дюймах)
Figure.set_figheight() / get_figheight()Установить/получить высоту Figure
Figure.set_figwidth() / get_figwidth()Задать/получить ширину Figure
Figure.dpiРазрешение DPI (свойство)
Figure.set_dpi() / get_dpi()Задать/получить DPI

5. Компоновка подграфиков

МетодОписание
Figure.subplots_adjust()Настроить интервалы между подграфиками вручную
Figure.set_layout_engine()Установить движок компоновки ('constrained'/'compressed'/'none')
Figure.get_layout_engine()Получить текущий движок компоновки
Figure.tight_layout()Автоматическая плотная компоновка (больше не рекомендуется)
Figure.set_tight_layout() / get_tight_layout()Установить/получить tight_layout (больше не рекомендуется)
Figure.set_constrained_layout() / get_constrained_layout()Установить/получить constrained_layout (больше не рекомендуется)
Figure.set_constrained_layout_pads() / get_constrained_layout_pads()Установить/получить отступы constrained_layout (больше не рекомендуется)

6. Взаимодействие

МетодОписание
Figure.ginput()Получить координатные точки с помощью щелчков мыши
Figure.waitforbuttonpress()Ожидать нажатия мыши или клавиатуры
Figure.pick()Инициировать событие pick
Figure.add_axobserver()Добавить наблюдателя за Axes

7. Изменение внешнего вида

МетодОписание
Figure.set_frameon() / get_frameon()Установить/получить, виден ли фон Figure
Figure.set_linewidth() / get_linewidth()Установить/получить толщину линии границы Figure
Figure.set_facecolor() / get_facecolor()Установить/получить цвет фона Figure
Figure.set_edgecolor() / get_edgecolor()Задать/получить цвет границы Figure

8. Добавление и получение Artist

МетодОписание
Figure.add_artist()Добавить любой Artist
Figure.figimage()Разместить изображение на уровне Figure
Figure.get_children()Получить все дочерние Artist

9. Управление состоянием

МетодОписание
Figure.clear()Очистить Figure
Figure.gca()Получить текущие Axes
Figure.sca()Установить текущий Axes
Figure.show()Показать Figure
Figure.draw()Отрисовать Figure
Figure.draw_artist()Нарисовать отдельный Artist
Figure.draw_without_rendering()Вычислить компоновку без отрисовки (для получения информации о размере)
Figure.set_canvas()Установить canvas
Figure.get_tightbbox()Получить точную ограничивающую рамку Figure
Figure.get_window_extent()Получить границы Figure в окне отображения

10. Вспомогательные функции

ФункцияОписание
figaspect()Вычислить размер Figure на основе указанного соотношения сторон

Объект SubFigure — список методов

SubFigure — это логическая дочерняя фигура, вложенная в родительскую Figure, с методами, аналогичными Figure.

Добавление Axes

МетодыОписание
SubFigure.subplots()Создать сетку подграфиков
SubFigure.add_subplot()Добавить один подграфик
SubFigure.add_axes()Добавить Axes в указанной позиции
SubFigure.subplot_mosaic()Подписать подграфики макета
SubFigure.add_gridspec()Добавить GridSpec
SubFigure.subfigures()Создать более глубоко вложенную SubFigure
SubFigure.add_subfigure()Добавить одну SubFigure
SubFigure.delaxes()Удалить Axes

Аннотации

МетодыОписание
SubFigure.suptitle() / get_suptitle()Общий заголовок SubFigure
SubFigure.supxlabel() / get_supxlabel()Подпись оси x SubFigure
SubFigure.supylabel() / get_supylabel()Подпись оси y SubFigure
SubFigure.colorbar()Цветовая шкала
SubFigure.legend()Легенда
SubFigure.text()Текст
SubFigure.align_labels()Выровнять подписи
SubFigure.align_xlabels() / align_ylabels()Выровнять подписи x/y
SubFigure.align_titles()Выровнять заголовки

Artist и внешний вид

МетодыОписание
SubFigure.add_artist()Добавить Artist
SubFigure.get_children()Получить дочерний Artist
SubFigure.set_frameon() / get_frameon()Установить/получить границу
SubFigure.set_linewidth() / get_linewidth()Установить/получить ширину линии
SubFigure.set_facecolor() / get_facecolor()Установить/получить цвет фона
SubFigure.set_edgecolor() / get_edgecolor()Установить/получить цвет границы
SubFigure.set_dpi() / get_dpi()Установить/получить DPI

Краткая справка по настройке стиля

Встроенные таблицы стилей

Черезplt.style.use('name')переключать стили.

Название стиляОписание стиля
defaultСтиль по умолчанию, чистый и нейтральный
ggplotИмитирует стиль R ggplot2, серый фон с белой сеткой
seaborn-v0_8Современный стиль, похожий на библиотеку seaborn
seaborn-v0_8-brightЯркая палитра seaborn
seaborn-v0_8-colorblindПалитра seaborn, удобная для людей с нарушением цветовосприятия
seaborn-v0_8-darkтёмный стиль seaborn
seaborn-v0_8-dark-paletteтёмная палитра seaborn
seaborn-v0_8-darkgridтёмный с сеткой seaborn
seaborn-v0_8-deepглубокие тона seaborn
seaborn-v0_8-mutedприглушённые тона seaborn
seaborn-v0_8-notebookстиль seaborn notebook
seaborn-v0_8-paperстиль seaborn paper
seaborn-v0_8-pastelпастельные тона seaborn
seaborn-v0_8-posterстиль seaborn poster
seaborn-v0_8-talkстиль seaborn talk
seaborn-v0_8-ticksстиль seaborn ticks
seaborn-v0_8-whiteбелый фон seaborn
seaborn-v0_8-whitegridseaborn white with grid
fivethirtyeightИмитирует стиль журналистики данных FiveThirtyEight
dark_backgroundТемный фон, подходит для презентаций и использования ночью
bmhСтиль Bayesian Methods for Hackers
grayscaleСтиль в градациях серого, подходит для черно-белой печати
classicКлассический стиль Matplotlib v1.x
fastУпрощенный стиль, более быстрый рендеринг
Solarize_Light2Светлая тема Solarized
tableau-colorblind10Палитра Tableau, удобная для дальтоников

Общая конфигурация rcParams

ПараметрОписаниеПример значения
figure.figsizeРазмер фигуры по умолчанию (в дюймах)[8, 6]
figure.dpiРазрешение по умолчанию100
figure.facecolorЦвет фона фигуры'white'
figure.edgecolorЦвет границы рисунка'white'
font.sizeГлобальный размер шрифта12
font.familyСемейство шрифтов'sans-serif'
font.sans-serifСписок шрифтов sans-serif['DejaVu Sans', ...]
axes.titlesizeРазмер шрифта заголовка'large'
axes.labelsizeРазмер шрифта подписи оси'medium'
axes.gridПоказывать ли сетку по умолчаниюFalse
axes.facecolorЦвет фона осей'white'
axes.spines.topПоказывать ли верхнюю границуTrue
axes.spines.rightПоказывать ли правую границуTrue
lines.linewidthШирина линии по умолчанию1.5
lines.markersizeРазмер маркера по умолчанию6
lines.linestyleСтиль линии по умолчанию'-'
legend.locПозиция легенды по умолчанию'best'
legend.fontsizeРазмер шрифта легенды'medium'
xtick.labelsizeРазмер подписей делений по оси x'medium'
ytick.labelsizeразмер подписей делений по оси Y'medium'
savefig.dpiDPI по умолчанию для сохранения изображений'figure'
savefig.bboxРежим ограничивающей рамки при сохраненииОтсутствует
image.cmapЦветовая карта по умолчанию'viridis'
image.interpolationМетод интерполяции изображения'antialiased'

Краткий справочник по цветовым картам

КатегорияНазвание цветовой картыСценарий применения
Перцептуально однородные (последовательные)viridis, plasma, inferno, magma, cividisНепрерывные данные, подходят для дальтоников, рекомендуемый первый выбор
Последовательные (градиент с одним оттенком)Greys, Purples, Blues, Greens, Oranges, Reds, YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu, GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGnНепрерывные данные от низкого к высокому, один оттенок
ДивергентныеPiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismicДвунаправленные данные с центральной точкой отсчёта
Циклическиеtwilight, twilight_shifted, hsvПериодические данные (например, угол, время)
КачественныеPastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20cДискретные категориальные данные
Разноеflag, prism, ocean, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, turbo, nipy_spectral, gist_ncarСпециального назначения или визуальные эффекты

'viridis'Это цветовая карта по умолчанию начиная с Matplotlib 2.0, с превосходной перцептивной равномерностью и дружественностью к людям с дальтонизмом, что делает её первым выбором в большинстве сценариев. Избегайте использования'jet'и'rainbow', так как они имеют проблемы с перцептивными искажениями.


Типичные примеры

Пример 1: базовый линейный график и диаграмма рассеяния

Создайте график, содержащий несколько кривых и аннотаций, используя явный интерфейс Axes.

Пример

import matplotlib.pyplot as plt
import numpy as np

# Сгенерировать данные: 100 равноотстоящих точек от 0 до 10
x = np.linspace(0, 10, 100)
y1 = np.sin(x)   # Функция синуса
y2 = np.cos(x)   # Функция косинуса

# Создать Figure и Axes (явный интерфейс, рекомендуется)
fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')

# Построить две линии, задать цвета, стили линий и подписи
ax.plot(x, y1, label='sin(x)', color='blue', linewidth=2)
ax.plot(x, y2, label='cos(x)', color='red', linestyle='--', linewidth=2)

# Добавить выделенные точки рассеяния в позициях пиков
peak_idx_sin = np.argmax(y1)
peak_idx_cos = np.argmax(y2)
ax.scatter(x[peak_idx_sin], y1[peak_idx_sin],
           color='blue', s=100, zorder=5)
ax.scatter(x[peak_idx_cos], y2[peak_idx_cos],
           color='red', s=100, zorder=5)

# Оформление: заголовок, подписи осей, легенда, сетка
ax.set_title('Функции синуса и косинуса', fontsize=14)
ax.set_xlabel('x (радианы)')
ax.set_ylabel('Амплитуда')
ax.legend(loc='upper right')
ax.grid(True, alpha=0.3)

plt.show()
print("пример: график успешно отображён")

Пример 2: Макет с несколькими подграфиками (2x2)

Демонстрирует, как создавать различные типы подграфиков в одной фигуре.

Пример

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)

# Создание подграфиков 2x2 (объектно-ориентированный интерфейс)
fig, axes = plt.subplots(2, 2, figsize=(10, 8), layout='constrained')
fig.suptitle('Многопанельная демонстрация ПРИМЕР', fontsize=16)

# Подграфик (0,0): линейный график
axes[0, 0].plot(x, np.sin(x), color='tab:blue', linewidth=2)
axes[0, 0].set_title('Линейный график')
axes[0, 0].set_ylabel('sin(x)')

# Подграфик (0,1): диаграмма рассеяния
np.random.seed(42)
colors = np.random.rand(50)
sizes = np.random.rand(50) * 200
axes[0, 1].scatter(np.random.rand(50), np.random.rand(50),
                   c=colors, s=sizes, alpha=0.6, cmap='viridis')
axes[0, 1].set_title('Диаграмма рассеяния')

# Подграфик (1,0): столбчатая диаграмма (с подписями значений)
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 78, 32]
bars = axes[1, 0].bar(categories, values,
                       color='tab:green', edgecolor='white')
axes[1, 0].bar_label(bars)  # Отобразить значения на столбцах
axes[1, 0].set_title('Столбчатая диаграмма')

# Подграфик (1,1): гистограмма
data = np.random.randn(1000)
axes[1, 1].hist(data, bins=30, color='tab:orange',
                edgecolor='white', alpha=0.8)
axes[1, 1].axvline(x=0, color='red', linestyle='--', linewidth=2)
axes[1, 1].set_title('Гистограмма')

plt.show()

Пример 3: тепловая карта против контурного графика

Демонстрирует визуализацию 2D-данных в одной и той же фигуре с использованием как imshow, так и contourf.

Пример

import matplotlib.pyplot as plt
import numpy as np

# Создать 2D-сетку данных
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)  # значения 2D-функции

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5),
                                layout='constrained')

# Левая панель: тепловая карта (imshow)
im = ax1.imshow(Z, extent=[-3, 3, -3, 3], origin='lower',
                cmap='viridis', aspect='auto')
ax1.set_title('Тепловая карта (imshow)', fontsize=14)
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
fig.colorbar(im, ax=ax1, label='Амплитуда', shrink=0.8)

# Правая панель: заполненные контуры (contourf)
contour = ax2.contourf(X, Y, Z, levels=15, cmap='RdYlBu')
# Наложение границ контуров
ax2.contour(X, Y, Z, levels=15, colors='black', linewidths=0.5)
ax2.set_title('Заполненный контур (contourf)', fontsize=14)
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
fig.colorbar(contour, ax=ax2, label='Амплитуда', shrink=0.8)

plt.show()

Пример 4: Переключение стилей и сохранение графиков

Используйте таблицы стилей и rcParams для настройки внешнего вида и сохранения изображений высокого качества.

Пример

import matplotlib.pyplot as plt
import numpy as np

# Используйте стиль ggplot, затем точно настройте некоторые параметры
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = [8, 6]
plt.rcParams['font.size'] = 12

x = np.linspace(0, 10, 50)
y1 = np.exp(-x/3) * np.sin(2 * x)  # Затухающая синусоида
y2 = np.exp(-x/3) * np.cos(2 * x)  # Затухающая косинусоида

fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='Затухающая синусоида', markersize=6)
ax.plot(x, y2, 's--', label='Затухающая косинусоида', markersize=6)

# Аннотировать первый пик
peak_idx = np.argmax(y1)
ax.annotate(f'Пик: {y1[peak_idx]:.2f}',
            xy=(x[peak_idx], y1[peak_idx]),
            xytext=(x[peak_idx] + 1.5, y1[peak_idx] + 0.15),
            arrowprops=dict(arrowstyle='->', color='gray'),
            fontsize=10)

ax.set_title('Затухающие колебания', fontsize=16)
ax.set_xlabel('Время (s)')
ax.set_ylabel('Амплитуда')
ax.legend()
ax.grid(True)

# Сохранить как высококачественный PNG с разрешением 300 DPI
fig.savefig('example_damped_oscillation.png',
            dpi=300, bbox_inches='tight')
print("пример: рисунок успешно сохранён")

plt.show()

Пример 5: Сложная компоновка с мозаикой

Используйте subplot_mosaic для создания неравномерных компоновок подграфиков.

Пример

import matplotlib.pyplot as plt
import numpy as np

# Мозаичная строка определяет макет:
# 'A' занимает всю верхнюю строку, 'B' и 'C' находятся в нижней левой и средней левой части, 'D' вертикально занимает нижний правый угол
layout = """
A A A
B C D
"""


fig, axes = plt.subplot_mosaic(layout, figsize=(10, 6),
                                layout='constrained')
fig.suptitle('Сложный мозаичный макет (ПРИМЕР)', fontsize=16)

# Панель A: линейный график (занимает верхнюю часть)
x = np.linspace(0, 10, 100)
axes['A'].plot(x, np.sin(x), label='sin(x)')
axes['A'].plot(x, np.cos(x), label='cos(x)')
axes['A'].set_title('Панель A: линейный график')
axes['A'].legend()

# Панель B: круговая диаграмма
sizes = [30, 25, 20, 15, 10]
labels = ['Python', 'Java', 'C++', 'Rust', 'Go']
axes['B'].pie(sizes, labels=labels, autopct='%1.1f%%',
              startangle=90)
axes['B'].set_title('Панель B: круговая диаграмма')

# Панель C: столбчатая диаграмма
axes['C'].bar(['X', 'Y', 'Z'], [10, 25, 15],
              color=['#ff6b6b', '#4ecdc4', '#45b7d1'])
axes['C'].set_title('Панель C: столбчатая диаграмма')

# Панель D: тепловая карта
matrix = np.random.rand(5, 5)
im = axes['D'].imshow(matrix, cmap='Blues', aspect='auto')
axes['D'].set_title('Панель D: Тепловая карта')
fig.colorbar(im, ax=axes['D'])

plt.show()

Пример 6: Двойные оси Y и врезные оси

Демонстрирует использование secondary_axis, twinx и inset_axes.

Пример

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(8, 5), layout='constrained')

x = np.linspace(0, 10, 100)

# Основной график: нарисовать две кривые с разными размерностями
ax.plot(x, np.sin(x), 'b-', label='sin(x) [амплитуда]')
ax.set_xlabel('x (радианы)')
ax.set_ylabel('sin(x)', color='blue')
ax.tick_params(axis='y', labelcolor='blue')

# Создать вторую ось Y (общая ось X)
ax2 = ax.twinx()
ax2.plot(x, np.exp(x/5), 'r--', label='exp(x/5) [рост]')
ax2.set_ylabel('exp(x/5)', color='red')
ax2.tick_params(axis='y', labelcolor='red')

# Добавить вложенный подграфик в ax (приблизить локальную область)
axins = ax.inset_axes([0.15, 0.5, 0.3, 0.35])
axins.plot(x, np.sin(x), 'b-')
axins.set_xlim(3, 5)
axins.set_ylim(-1.2, 1.2)
axins.set_title('Увеличенная область')
axins.grid(True, alpha=0.3)

# Отметить область вставки на основном графике
ax.indicate_inset_zoom(axins, edgecolor='gray')

ax.set_title('Двойные оси Y с врезкой увеличения', fontsize=14)
plt.show()

Часто задаваемые вопросы

Графики не отображаются

Проверьте, вызывали ли выplt.show()。

Должен быть явно вызван при неинтерактивных бэкендах (например, Agg)show()。

В Jupyter Notebook используйте%matplotlib inlineМагическая команда обеспечивает встроенное отображение графиков.

Слишком много делений или неверный порядок делений

Распространённая причина — передача списка строк в качестве данных (а не числовых значений или значений datetime).

Matplotlib рассматривает списки строк как категориальные переменные и создаёт по одному делению на каждое уникальное значение, располагая их в порядке появления.

Решение: преобразуйте строки в числовые значения, напримерnp.asarray(data, dtype='float')илиnp.asarray(data, dtype='datetime64[s]')。

Китайские символы отображаются в виде квадратов

Шрифт Matplotlib по умолчанию (DejaVu Sans) не содержит китайских глифов; нужно указать шрифт, поддерживающий китайский.

Setplt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', ...]И убедитесь, что соответствующий шрифт установлен в системе.

Подписи перекрываются или обрезаются

Рекомендуется использовать при создании Figurelayout='constrained'илиlayout='compressed'параметр, который автоматически обрабатывает перекрывающиеся подписи, заголовки и легенды.

Вы также можете использоватьfig.tight_layout()илиfig.subplots_adjust()ручная корректировка.

Различия между pcolor и pcolormesh

pcolor()Создаёт PolyCollection, медленнее, но более точная отрисовка.

pcolormesh()Создаёт QuadMesh, быстрее отрисовка, рекомендуется для большинства сценариев.

Для очень больших сеток,pcolorfast()используйте метод imshow для построения графиков — самый быстрый, но наименее точный.


Связанные ресурсы

  • Официальный сайт Matplotlib: matplotlib.org
  • Официальная галерея: matplotlib.org/stable/gallery/index.html
  • Полный справочник API: matplotlib.org/stable/api/index.html
  • Руководство по установке: matplotlib.org/stable/install/index.html
  • Руководство по участию в разработке: matplotlib.org/stable/devel/index.html
Другие расширения