matplotlib.axes.Axes.contour
- Axes.contour(*args, data=None, **kwargs)[исходный код]
-
Построить линии уровня.
Сигнатура вызова:
contour([X, Y,] Z, /, [levels], **kwargs)
Аргументы X, Y, Z являются только позиционными.
contourиcontourfстроят соответственно линии уровня и залитые области между линиями уровня. За исключением указанных случаев, сигнатуры функций и возвращаемые значения у обеих версий одинаковы.- Параметры:
-
- X, Yмассивоподобные, необязательные
-
Координаты значений в Z.
X и Y должны быть двумерными и иметь ту же форму, что и Z (например, созданными с помощью
numpy.meshgrid), либо оба должны быть одномерными, причемlen(X) == N— число столбцов в Z, аlen(Y) == M— число строк в Z.X и Y должны быть упорядочены монотонно.
Если они не заданы, предполагается, что это целочисленные индексы, то есть
X = range(N),Y = range(M). - Zмассивоподобный объект формы (M, N)
-
Значения высоты, по которым строятся линии уровня. Сопоставление цветов контролируется параметрами cmap, norm, vmin и vmax.
- levelsцелое число или массивоподобный объект, необязательный
-
Определяет число и положения линий уровня / областей.
Если задано целое число n, используется
MaxNLocator, который пытается автоматически выбрать не более n+1 «подходящих» уровней между минимальным и максимальным числовыми значениями Z.Если задан массивоподобный объект, линии уровня строятся на указанных уровнях. Значения должны располагаться в порядке возрастания.
- Возвращает:
-
QuadContourSet
- Другие параметры:
-
-
corner_maskлогическое значение, по умолчанию:
rcParams["contour.corner_mask"](значение по умолчанию:True) -
Включает или отключает маскирование углов, которое действует только в том случае, если Z — маскированный массив. Если
False, маскируется любой четырёхугольник, касающийся замаскированной точки. ЕслиTrue, всегда маскируются только треугольные углы четырёхугольников, ближайшие к этим точкам; остальные треугольные углы, образованные тремя незамаскированными точками, обрабатываются как обычно. - colorsцвет или список значений цвета, необязательный
-
Цвета уровней: линий для
contourи областей дляcontourf.Последовательность циклически повторяется для уровней в порядке возрастания. Если последовательность короче числа уровней, она повторяется.
В качестве сокращённой записи вместо списка из одного элемента можно использовать один цвет, то есть
'red'вместо['red'], чтобы окрасить все уровни одним цветом.Изменено в версии 3.10: Ранее один цвет нужно было задавать строкой, теперь можно передавать любой допустимый формат цвета.
По умолчанию (значение None) используется цветовая карта, указанная в cmap.
- alphaвещественное число, по умолчанию: 1
-
Значение альфа-смешивания от 0 (прозрачный) до 1 (непрозрачный).
-
cmapстрока или
Colormap, по умолчанию:rcParams["image.cmap"](значение по умолчанию:'viridis') -
Экземпляр Colormap или имя зарегистрированной цветовой карты, используемые для преобразования скалярных данных в цвета.
Этот параметр игнорируется, если задан colors.
-
normстрока или
Normalize, необязательный -
Метод нормализации, используемый для масштабирования скалярных данных в диапазон [0, 1] перед преобразованием в цвета с помощью cmap. По умолчанию используется линейное масштабирование, при котором наименьшее значение отображается как 0, а наибольшее — как 1.
Если задан, параметр может быть одним из следующих:
- Экземпляр
Normalizeили одного из его подклассов (см. Нормализация цветовой карты). - Имя шкалы, то есть одно из значений "linear", "log", "symlog", "logit" и т. д. Список доступных шкал можно получить вызовом
matplotlib.scale.get_scale_names(). В этом случае подходящий подклассNormalizeсоздаётся и инстанцируется динамически.
Этот параметр игнорируется, если задан colors.
- Экземпляр
- vmin, vmaxвещественное число, необязательный
-
При использовании скалярных данных и отсутствии явного norm параметры vmin и vmax задают диапазон данных, охватываемый цветовой картой. По умолчанию цветовая карта охватывает весь диапазон значений предоставленных данных. Использовать vmin/vmax при заданном экземпляре norm нельзя (однако допустимо использовать имя norm типа
strвместе с vmin/vmax).Если vmin или vmax не заданы, масштабирование цветов по умолчанию определяется параметром levels.
Этот параметр игнорируется, если задан colors.
-
colorizer
Colorizerили None, по умолчанию: None -
Объект Colorizer, используемый для сопоставления цветов с данными. Если задано None, объект Colorizer создаётся на основе norm и cmap.
Этот параметр игнорируется, если задан colors.
- origin{None, 'upper', 'lower', 'image'}, по умолчанию: None
-
Определяет ориентацию и точное положение Z, задавая положение
Z[0, 0]. Это имеет значение, только если X и Y не заданы.-
None:
Z[0, 0]находится в точке X=0, Y=0 в левом нижнем углу. - 'lower':
Z[0, 0]находится в точке X=0.5, Y=0.5 в левом нижнем углу. - 'upper':
Z[0, 0]находится в точке X=N+0.5, Y=0.5 в левом верхнем углу. - 'image': Используется значение из
rcParams["image.origin"](по умолчанию:'upper').
-
None:
- extent(x0, x1, y0, y1), необязательный
-
Если origin не равен None, параметр extent интерпретируется так же, как в
imshow: он задаёт внешние границы пикселей. В этом случае положение Z[0, 0] соответствует центру пикселя, а не его углу. Если origin равен None, то (x0, y0) — положение Z[0, 0], а (x1, y1) — положение Z[-1, -1].Этот аргумент игнорируется, если при вызове contour заданы X и Y.
- locatorподкласс ticker.Locator, необязательный
-
Локатор используется для определения уровней, если они явно не заданы через levels. По умолчанию используется
MaxNLocator. - extend{'neither', 'both', 'min', 'max'}, по умолчанию: 'neither'
-
Определяет окрашивание значений цветами
contourf, лежащих за пределами диапазона levels.Если задано 'neither', значения за пределами диапазона levels не окрашиваются. Если задано 'min', 'max' или 'both', окрашиваются значения ниже, выше или ниже и выше диапазона levels.
Значения ниже
min(levels)и вышеmax(levels)сопоставляются значениям under/over цветовой картыColormap. Обратите внимание, что у большинства цветовых карт по умолчанию нет отдельных цветов для этих значений, поэтому для over и under используются крайние цвета цветовой карты. При необходимости эти значения можно задать явно с помощьюColormap.set_underиColormap.set_over.Примечание
Существующий объект
QuadContourSetне получает уведомления об изменении свойств своей цветовой карты. Поэтому после изменения цветовой карты необходимо явно вызватьchanged(). Этот явный вызов можно опустить, если объектуQuadContourSetназначена цветовая шкала, поскольку она вызываетchanged()автоматически.Пример:
x = np.arange(1, 10) y = x.reshape(-1, 1) h = x * y cs = plt.contourf(h, levels=[10, 30, 50], colors=['#808080', '#A0A0A0', '#C0C0C0'], extend='both') cs.cmap.set_over('red') cs.cmap.set_under('blue') cs.changed() - xunits, yunitsзарегистрированные единицы измерения, необязательные
-
Переопределяет единицы измерения осей заданным экземпляром
matplotlib.units.ConversionInterface. - antialiasedлогическое значение, необязательный
-
Включает сглаживание, переопределяя значения по умолчанию. Для залитых областей значение по умолчанию — False. Для линий оно берётся из
rcParams["lines.antialiased"](значение по умолчанию:True). - nchunkцелое число >= 0, необязательный
-
Если равно 0, разбиение области не выполняется. Укажите положительное целое число, чтобы разделить область на поддомены размером nchunk на nchunk четырёхугольников. Разбиение на части сокращает максимальную длину многоугольников, создаваемых алгоритмом построения линий уровня, что уменьшает нагрузку на отрисовку, передаваемую бэкенду, и требует немного меньше оперативной памяти. Однако на границах частей могут возникать артефакты отрисовки — в зависимости от бэкенда, флага antialiased и значения alpha.
-
linewidthsвещественное число или массивоподобный объект, по умолчанию:
rcParams["contour.linewidth"](значение по умолчанию:None) -
Применяется только к
contour.Толщина линий уровня.
Если задано число, все уровни будут построены с этой толщиной линии.
Если задана последовательность, уровни в порядке возрастания будут построены с толщинами линий в указанном порядке.
Если задано None, используется
rcParams["lines.linewidth"](значение по умолчанию:1.5). - linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, необязательный
-
Применяется только к
contour.Если linestyles равен None, по умолчанию используется 'solid', если только линии не одноцветные. В этом случае для отрицательных линий уровня используется стиль линии из аргумента negative_linestyles.
linestyles также может быть итерируемым объектом, содержащим указанные выше строки и задающим набор используемых стилей линий. Если этот объект короче числа уровней, он будет повторяться при необходимости.
- negative_linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, необязательный
-
Применяется только к
contour.Если linestyles равен None, а линии одноцветные, этот аргумент задаёт стиль линий для отрицательных уровней.
Если negative_linestyles равен None, стиль берётся из
rcParams["contour.negative_linestyle"](значение по умолчанию:'dashed').negative_linestyles также может быть итерируемым объектом, содержащим указанные выше строки и задающим набор используемых стилей линий. Если этот объект короче числа уровней, он будет повторяться при необходимости.
- hatchesсписок строк, необязательный
-
Применяется только к
contourf.Список узоров перекрёстной штриховки для залитых областей. Если задано None, штриховка для линий уровня не добавляется.
- algorithm{'mpl2005', 'mpl2014', 'serial', 'threaded'}, необязательный
-
Алгоритм, используемый для вычисления линий уровня и многоугольников. Алгоритмы реализованы в ContourPy; дополнительную информацию см. в документации ContourPy.
Значение по умолчанию берётся из
rcParams["contour.algorithm"](значение по умолчанию:'mpl2014'). -
clip_path
PatchилиPathилиTransformedPath -
Задаёт контур обрезки. См.
set_clip_path.Добавлено в версии 3.8.
- dataиндексируемый объект, необязательный
-
Если задан, все параметры также принимают строку
s, которая интерпретируется какdata[s], еслиsявляется ключом вdata.
-
corner_maskлогическое значение, по умолчанию:
Примечания
-
contourfотличается от версии MATLAB тем, что не строит границы многоугольников. Чтобы нарисовать границы, добавьте линии уровня с помощью вызововcontour. -
contourfзаполняет интервалы, замкнутые сверху; то есть для границ z1 и z2 залитая область имеет вид:z1 < Z <= z2
за исключением самого нижнего интервала, который замкнут с обеих сторон (то есть включает наименьшее значение).
-
contourиcontourfиспользуют алгоритм марширующих квадратов для вычисления положений линий уровня. Дополнительную информацию можно найти в документации ContourPy.
Примеры использования matplotlib.axes.Axes.contour
Линии уровня в пространстве решений задач оптимизации
Смешивание прозрачности с цветом на двумерных изображениях
График линий уровня для неравномерно расположенных данных
Построение кривых уровня в 3D с параметром extend3d
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.contour.html