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, optional -
Метод нормализации, используемый для масштабирования скалярных данных в диапазон [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 типа
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"](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, optional
-
Локатор используется для определения уровней контура, если они не заданы явно через 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
-
corner_maskbool, default:
-
-
Относится только к
contour.Если linestyles равно None и линии монохромные, этот аргумент определяет стиль линии для отрицательных контуров.
Если negative_linestyles равно None, значение по умолчанию взято из
rcParams["contour.negative_linestyles"].negative_linestyles также может быть итерируемым объектом вышеуказанных строк, определяющим набор стилей линий, которые будут использоваться. Если этот итерируемый объект короче, чем количество уровней контура, он будет повторяться по необходимости.
- hatcheslist[str], optional
-
Относится только к
contourf.Список узоров штриховки, которые будут использоваться для заполненных областей. Если None, штриховка контура не будет добавлена.
- algorithm{'mpl2005', 'mpl2014', 'serial', 'threaded'}, optional
-
Какой алгоритм контурирования использовать для расчета линий и полигонов контура. Алгоритмы реализованы в ContourPy, подробную информацию см. в документации ContourPy.
Значение по умолчанию взято из
rcParams["contour.algorithm"](значение по умолчанию:'mpl2014'). -
clip_path
PatchилиPathилиTransformedPath -
Установить путь обрезки. См.
set_clip_path.Добавлен в версии 3.8.
- dataиндексируемый объект, необязательно
-
Если задано, все параметры также принимают строку
s, которая интерпретируется какdata[s](если это не вызывает исключения).
-
Примечания
Примечание
Это обертка pyplot для
axes.Axes.contour.-
contourfотличается от версии MATLAB тем, что не рисует края полигонов. Чтобы нарисовать края, добавьте линии контуров с вызовамиcontour. -
contourfзаполняет интервалы, закрытые сверху; то есть для границ z1 и z2 заполненная область равна:z1 < Z <= z2
за исключением нижнего интервала, который закрыт с обеих сторон (т. е. он включает самое низкое значение).
-
contourиcontourfиспользуют алгоритм marching squares для вычисления расположения контуров. Дополнительную информацию можно найти в документации ContourPy.
Примеры использования matplotlib.pyplot.contour
Смешивание прозрачности с цветом в 2D-изображениях
Контурный график неравномерно расположенных данных
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.contour.html