matplotlib.axes.Axes.contour
- Axes.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, необязательно
-
Определяет количество и позиции контурных линий/областей.
Если целое число n, используется
MaxNLocator, который пытается автоматически выбрать не более n+1 «приятных» уровней контура между vmin и vmax.Если массив, строятся контурные линии на указанных уровнях. Значения должны быть в возрастающем порядке.
- Возвращает:
-
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или одного из его подклассов (см. Нормализация цветовых карт). - Имя шкалы, например, "линейное", "логарифмическое", "симлогическое", "логит" и т. д. Для получения списка доступных шкал вызовите
matplotlib.scale.get_scale_names(). В этом случае подклассNormalizeдинамически генерируется и создаётся экземпляр.
Этот параметр игнорируется, если задан colors.
- Экземпляр
- vmin, vmaxfloat, optional
-
При использовании скалярных данных и отсутствии явного norm, vmin и vmax определяют диапазон данных, который покрывает цветовая карта. По умолчанию цветовая карта покрывает весь диапазон значений предоставленных данных. Использование vmin/vmax при заданном экземпляре norm является ошибкой (но использование имени norm типа
strвместе с 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"](по умолчанию:'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
-
Включить сглаживание, переопределяя значения по умолчанию. Для заполненных контуров значение по умолчанию — True. Для линий контуров оно взято из
rcParams["lines.antialiased"](по умолчанию:True). - nchunkint >= 0, optional
-
Если 0, поддомены не используются. Укажите положительное целое число для деления области на поддомены размером nchunk на nchunk квадрантов. Разбиение на блоки уменьшает максимальную длину полигонов, генерируемых алгоритмом контуров, что уменьшает нагрузку на отрисовку, передаваемую в бэкенд, и также требует немного меньше ОЗУ. Однако это может привести к артефактам рендеринга на границах блоков в зависимости от бэкенда, флага antialiased и значения alpha.
-
linewidthsfloat или массив-подобный объект, по умолчанию:
rcParams["contour.linewidth"](по умолчанию:None) -
Применимо только к
contour.Толщина линий контуров.
Если число, все уровни будут нарисованы с этой толщиной.
Если последовательность, уровни в порядке возрастания будут нарисованы с толщиной линий в указанном порядке.
Если None, используется значение по умолчанию
rcParams["lines.linewidth"](по умолчанию: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список[str], optional
-
corner_maskbool, default:
-
-
Применимо только к
contourf.Список узоров штриховки для заполненных областей. Если None, штриховка не будет добавлена к контуру. Штриховка поддерживается только в PostScript, PDF, SVG и Agg бэкендах.
- 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.axes.Axes.contour
Смешивание прозрачности с цветом в 2D изображениях
Диаграмма контуров неравномерно расположенных данных
Демонстрация построения кривых контуров (уровня) в 3D
Демонстрация построения кривых контуров (уровня) в 3D с опцией extend3d
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/_as_gen/matplotlib.axes.Axes.contour.html