matplotlib.pyplot.contour
- matplotlib.pyplot.contour(*args, data=None, **kwargs)[source]
-
Построить линии уровня.
Сигнатура вызова:
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'
-
Определяет окрашивание значений за пределами диапазона levels цветами
contourf.При значении '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список[str], необязательный
-
Применяется только к
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логическое значение, по умолчанию:
Примечания
Примечание
Это обёртка pyplot для
axes.Axes.contour.-
contourfотличается от версии MATLAB тем, что не рисует границы многоугольников. Чтобы нарисовать границы, добавьте линии уровня с помощью вызововcontour. -
contourfзаполняет интервалы, замкнутые сверху; то есть для границ z1 и z2 заполненная область имеет вид:z1 < Z <= z2
за исключением самого нижнего интервала, который замкнут с обеих сторон (то есть включает минимальное значение).
-
contourиcontourfиспользуют алгоритм marching squares для вычисления положений контуров. Дополнительную информацию можно найти в документации ContourPy.
Примеры использования matplotlib.pyplot.contour
Смешение прозрачности и цвета на двумерных изображениях
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.contour.html