matplotlib.pyplot.contour
- matplotlib.pyplot.contour(*args, data=None, **kwargs)[source]
-
Построение контурных линий.
Вызов:
contour([X, Y,] Z, [levels], **kwargs)
contourиcontourfсоответственно рисуют контурные линии и заполненные контуры. За исключением отмеченных случаев, сигнатуры функций и возвращаемые значения одинаковы для обеих версий.- Параметры:
-
- X, Yarray-like, необязательно
-
Координаты значений в Z.
X и Y должны быть обе 2D с такой же формой, как Z (например, созданные с помощью
numpy.meshgrid), или они должны быть обе 1-D так, чтоlen(X) == N— это количество столбцов в Z, аlen(Y) == M— количество строк в Z.X и Y должны быть упорядочены монотонно.
Если не указаны, предполагается, что они являются целочисленными индексами, т. е.
X = range(N),Y = range(M). - Z(M, N) array-like
-
Значения высот, по которым строится контур. Отображение цветов контролируется параметрами cmap, norm, vmin и vmax.
- levelsint или array-like, необязательно
-
Определяет количество и позиции контурных линий / областей.
Если int n, использует
MaxNLocator, который пытается автоматически выбрать не более n+1 «приятных» контурных уровней между минимальным и максимальным числовым значениями Z.Если array-like, строит контурные линии на заданных уровнях. Значения должны быть в порядке возрастания.
- Возвращаемое значение:
-
QuadContourSet
- Другие параметры:
-
-
corner_maskbool, default:
rcParams["contour.corner_mask"](default:True) -
Включить/выключить маскирование углов, которое действует только если Z является массив с масками. Если
False, любая четырёхугольник касающаяся замаскированной точки будет замаскирована. ЕслиTrue, только треугольные углы четырёхугольников, ближайших к этим точкам, всегда будут замаскированы, другие треугольные углы, состоящие из трёх незамаскированных точек, будут контурированы как обычно. - colorsстрока цвета или последовательность цветов, необязательно
-
Цвета уровней, т.е. линии для
contourи области дляcontourf.Последовательность циклически используется для уровней в порядке возрастания. Если последовательность короче, чем количество уровней, она повторяется.
В качестве сокращения можно использовать одиночные строки цвета вместо списков с одним элементом, т.е.
'red'вместо['red']для окраски всех уровней одним цветом. Это сокращение работает только для строк цвета, а не для других способов задания цветов.По умолчанию (значение None) используется цветовая карта, заданная параметром cmap.
- alphafloat, default: 1
-
Значение альфа-смешивания, от 0 (прозрачный) до 1 (непрозрачный).
-
cmapстрока или
Colormap, default:rcParams["image.cmap"](default:'viridis') -
Экземпляр цветовой карты или зарегистрированное имя цветовой карты, используемое для сопоставления скалярных данных с цветами.
Этот параметр игнорируется, если задан параметр colors.
-
normстрока или
Normalize, необязательно -
Метод нормализации, используемый для масштабирования скалярных данных до диапазона [0, 1] перед сопоставлением с цветами с помощью cmap. По умолчанию используется линейное масштабирование, сопоставляющее минимальное значение с 0, а максимальное — с 1.
Если задано, это может быть одно из следующего:
- Экземпляр
Normalizeили один из его подклассов (см. Нормализация цветовых карт). - Имя масштаба, например, "linear", "log", "symlog", "logit" и т.д. Для получения списка доступных масштабов вызовите
matplotlib.scale.get_scale_names(). В этом случае динамически генерируется и создаётся экземпляр соответствующего подклассаNormalize.
Этот параметр игнорируется, если задан параметр colors.
- Экземпляр
- vmin, vmaxfloat, optional
-
При использовании скалярных данных и отсутствии явного параметра norm, vmin и vmax определяют диапазон данных, который охватывает цветовая карта. По умолчанию цветовая карта охватывает весь диапазон значений предоставленных данных. Использование vmin/vmax с заданным экземпляром norm является ошибкой (но использование строки norm вместе с vmin/vmax допустимо).
Если vmin или vmax не заданы, масштабирование по умолчанию основано на параметре levels.
Этот параметр игнорируется, если задан параметр colors.
- origin{None, 'upper', 'lower', 'image'}, default: 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"](default:'upper').
-
None:
- extent(x0, x1, y0, y1), optional
-
Если origin не равно None, то extent интерпретируется так же, как в
imshow: он задаёт внешние границы пикселей. В этом случае положение Z[0, 0] является центром пикселя, а не углом. Если origin равно None, то (x0, y0) является положением Z[0, 0], а (x1, y1) является положением Z[-1, -1].Этот аргумент игнорируется, если X и Y заданы при вызове contour.
- locatorподкласс ticker.Locator, необязательно
-
Локатор используется для определения контурных уровней, если они не заданы явно через levels. По умолчанию используется
MaxNLocator. - extend{'neither', 'both', 'min', 'max'}, default: 'neither'
-
Определяет
contourf-закраску значений, которые находятся вне диапазона levels.Если 'neither', значения вне диапазона levels не закрашиваются. Если 'min', 'max' или 'both', закрасить значения ниже, выше или ниже и выше диапазона levels.
Значения ниже
min(levels)и вышеmax(levels)сопоставляются с под/над значениями цветовой картыColormap. Обратите внимание, что большинство цветовых карт по умолчанию не имеют выделенных цветов для этих значений, поэтому значения «над» и «под» являются крайними значениями цветовой карты. Вы можете явно задать эти значения с помощьюColormap.set_underиColormap.set_over.Примечание
Существующий
QuadContourSetне получает уведомлений о изменениях свойств его цветовой карты. Поэтому необходим явный вызовQuadContourSet.changed()после изменения цветовой карты. Явный вызов можно опустить, если цветовой шкале присвоено значениеQuadContourSet, потому что она внутренне выполняет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. - antialiasedbool, optional
-
Включить сглаживание, переопределяя значения по умолчанию. Для заполненных контуров значение по умолчанию — False. Для контуров линий оно взято из
rcParams["lines.antialiased"](default:True). - nchunkint >= 0, optional
-
Если 0, область не разбивается. Укажите положительное целое число, чтобы разбить область на поддомены размером nchunk на nchunk четырёхугольников. Разбиение уменьшает максимальную длину полигонов, генерируемых алгоритмом контурирования, что уменьшает объём работы отрисовки, передаваемый бэкэнду, а также требует немного меньше оперативной памяти. Однако в зависимости от бэкэнда, флага antialiased и значения alpha оно может создавать артефакты отрисовки на границах разбиения.
-
linewidthsfloat или массив, default:
rcParams["contour.linewidth"](default:None) -
Применимо только к
contour.Толщина линий контура.
Если число, все уровни будут нарисованы с этой толщиной.
Если последовательность, уровни в порядке возрастания будут нарисованы с толщиной из заданной последовательности.
Если None, это возвращается к
rcParams["lines.linewidth"](default:1.5). - linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, optional
-
Применимо только к
contour.Если linestyles равно None, по умолчанию используется 'solid', если линии не монохромные. В монохромном случае отрицательные контуры вместо этого используют стиль линии из аргумента negative_linestyles.
linestyles также может быть итерируемым объектом из вышеперечисленных строк, задающим набор стилей линий для использования. Если этот итерируемый объект короче, чем количество уровней контуров, он повторяется по мере необходимости.
- negative_linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, optional
-
Применимо только к
contour.Если linestyles равно None и линии монохромные, этот аргумент задаёт стиль линии для отрицательных контуров.
Если negative_linestyles равно None, значение по умолчанию берётся из
rcParams["contour.negative_linestyles"].negative_linestyles также может быть итерируемым объектом из вышеперечисленных строк, задающим набор стилей линий для использования. Если этот итерируемый объект короче, чем количество уровней контуров, он повторяется по мере необходимости.
- hatchesсписок[строка], optional
-
corner_maskbool, default:
-
-
Только для
contourf.Список узоров штриховки для заполненных областей. Если None, штриховка не будет добавлена к контуру. Штриховка поддерживается только в PostScript, PDF, SVG и Agg backends.
- algorithm{'mpl2005', 'mpl2014', 'serial', 'threaded'}, optional
-
Какой алгоритм контуринга использовать для расчета линий и полигонов контура. Алгоритмы реализованы в ContourPy, см. документацию ContourPy для получения дополнительной информации.
Значение по умолчанию взято из
rcParams["contour.algorithm"](по умолчанию:'mpl2014'). - dataиндексируемый объект, необязательно
-
Если задано, все параметры также принимают строку
s, которая интерпретируется какdata[s](если это не вызывает исключение).
-
Примечания
-
contourfотличается от версии MATLAB тем, что не рисует границы полигона. Чтобы нарисовать границы, добавьте линии контура с вызовамиcontour. -
contourfзаполняет интервалы, которые закрыты сверху; то есть, для границ z1 и z2, заполненная область:z1 < Z <= z2
за исключением самого нижнего интервала, который закрыт с обеих сторон (т. е. включает самое низкое значение).
-
contourиcontourfиспользуют алгоритм «марширующих квадратов» для вычисления расположения контуров. Дополнительную информацию можно найти в документации ContourPy.
Примеры использования matplotlib.pyplot.contour
Смешивание прозрачности с цветом в 2D изображениях
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/_as_gen/matplotlib.pyplot.contour.html