Документация Engee

contourf

Страница в процессе перевода.

contourf(xs, ys, zs; kwargs...)

Строит контур с заливкой в соответствии с информацией о высоте в zs в позициях сетки по горизонтали xs и позициях сетки по вертикали ys.

Тип графика

Псевдоним типа графика для функции contourf — Contourf.

using CairoMakie
using DelimitedFiles


volcano = readdlm(Makie.assetpath("volcano.csv"), ',', Float64)

f = Figure()
Axis(f[1, 1])

co = contourf!(volcano, levels = 10)

Colorbar(f[1, 2], co)

f
4403df0

using CairoMakie
using DelimitedFiles


volcano = readdlm(Makie.assetpath("volcano.csv"), ',', Float64)

f = Figure()
ax = Axis(f[1, 1])

co = contourf!(volcano,
    levels = range(100, 180, length = 10),
    extendlow = :cyan, extendhigh = :magenta)

tightlimits!(ax)

Colorbar(f[1, 2], co)

f
fa3de6a

using CairoMakie
using DelimitedFiles


volcano = readdlm(Makie.assetpath("volcano.csv"), ',', Float64)

f = Figure()
ax = Axis(f[1, 1])

co = contourf!(volcano,
    levels = range(100, 180, length = 10),
    extendlow = :auto, extendhigh = :auto)

tightlimits!(ax)

Colorbar(f[1, 2], co)

f
1ed8729

Относительный режим

Иногда бывает полезно отбросить одну часть диапазона значений, обычно в сторону внешней границы. Вместо того чтобы указывать включаемые уровни вручную, можно задать атрибуту mode значение :relative и указать уровни от 0 до 1 относительно текущего минимального и максимального значений.

using CairoMakie
using DelimitedFiles


volcano = readdlm(Makie.assetpath("volcano.csv"), ',', Float64)

f = Figure(size = (800, 400))

Axis(f[1, 1], title = "Relative mode, drop lowest 30%")
contourf!(volcano, levels = 0.3:0.1:1, mode = :relative)

Axis(f[1, 2], title = "Normal mode")
contourf!(volcano, levels = 10)

f
eb23ef5

Криволинейные сетки

contourf также поддерживает криволинейные сетки, где x и y являются матрицами того же размера, что и z. Это аналогично входным данным, принимаемым surface.

Давайте заключим регулярную сетку x и y в оболочку с помощью некоторой нелинейной функции и построим ее контуры:

using CairoMakie
x = -10:10
y = -10:10
# Криволинейная сетка:
xs = [x + 0.01y^3 for x in x, y in y]
ys = [y + 10cos(x/40) for x in x, y in y]
# Теперь для простоты рассчитаем значения `zs`
# как радиус от центра сетки (0, 10).
zs = sqrt.(xs .^ 2 .+ (ys .- 10) .^ 2)
# Мы можем использовать методы нахождения делений Makie для получения уровней контуров:
levels = Makie.get_tickvalues(Makie.LinearTicks(7), extrema(zs)...)
# и теперь строим график.
f = Figure()
ax1 = Axis(f[1, 1])
ctrf1 = contourf!(ax1, x, y, zs; levels = levels)
ax2 = Axis(f[1, 2])
ctrf2 = contourf!(ax2, xs, ys, zs; levels = levels)
f
c323ede

Атрибуты

clip_planes

Значение по умолчанию: automatic
плоскости отсечения позволяют выполнять отсечение в трехмерном пространстве. Здесь можно указать вектор из 8 плоскостей Plane3f, за которыми графики будут отсечены (т. е. станут невидимыми). По умолчанию плоскости отсечения наследуются от родительского графика или сцены. Чтобы удалить родительский объект clip_planes, передайте Plane3f[].

colormap

Значение по умолчанию: @inherit colormap
документация недоступна.

colorscale

Значение по умолчанию: identity
документация недоступна.

depth_shift

Значение по умолчанию: 0.0
корректирует значение глубины графика после всех остальных преобразований, т. е. в пространстве отсечения, где 0 <= depth <= 1. Применимо только к GLMakie и WGLMakie и может использоваться для настройки порядка отрисовки (настраиваемая перерисовка).

extendhigh

Значение по умолчанию: nothing
если в режиме :normal необходимо отобразить полосу от верхнего края до Inf, присвойте extendhigh значение :auto, чтобы у продолжения был тот же цвет, что и у последнего уровня, либо укажите цвет напрямую (по умолчанию nothing означает отсутствие продолжающей полосы).

extendlow

Значение по умолчанию: nothing
если в режиме :normal необходимо отобразить полосу от -Inf до нижнего края, присвойте extendlow значение :auto, чтобы у продолжения был тот же цвет, что и у первого уровня, либо укажите цвет напрямую (по умолчанию nothing означает отсутствие продолжающей полосы).

fxaa

Значение по умолчанию: true
определяет то, будет ли график отрисовываться с помощью fxaa (сглаживание, только GLMakie).

inspectable

Значение по умолчанию: true
определяет, должен ли график проверяться с помощью DataInspector.

inspector_clear

Значение по умолчанию: automatic
задает функцию обратного вызова (inspector, plot) -> ... для очистки пользовательских индикаторов в DataInspector.

inspector_hover

Значение по умолчанию: automatic
задает функцию обратного вызова (inspector, plot, index) -> ..., которая заменяет методы show_data по умолчанию.

inspector_label

Значение по умолчанию: automatic
задает функцию обратного вызова (plot, index, position) -> string, которая заменяет метку по умолчанию, сгенерированную DataInspector.

levels

Значение по умолчанию: 10
значение может быть одного из следующих типов:

  • Int — получается n уровней или полос одинаковой ширины;

  • AbstractVector{<:Real} — содержит список n последовательных краев от нижнего до верхнего, в результате чего получается n-1 уровней или полос.

Если значение levels имеет тип Int, график contourf будет прямоугольным, так как все значения zs будут охвачены от края до края. Вот почему для таких графиков contourf Axis по умолчанию имеет жесткие пределы. Однако обратите внимание, что если для levels указывается AbstractVector{<:Real}, пределы осей включают поля по умолчанию, так как график contourf может иметь неправильную форму. Чтобы ужесточить пределы, как в случае с tightlimits!(ax), можно использовать Int.

mode

Значение по умолчанию: :normal
определяет, как интерпретируется атрибут levels: :normal или :relative. В режиме :normal уровни напрямую соответствуют значениям z. В режиме :relative края указываются в виде доли между минимальным и максимальным значениями zs. Так, например, можно нарисовать полосы для верхних 90 %, исключив нижние 10 %, с помощью аргументов levels = 0.1:0.1:1.0, mode = :relative.

model

Значение по умолчанию: automatic
задает модельную матрицу для графика. Переопределяет настройки, выполненные с помощью translate!, rotate! и scale!.

nan_color

Значение по умолчанию: :transparent
документация недоступна.

overdraw

Значение по умолчанию: false
определяет то, будет ли график отрисовываться поверх других графиков. В частности, это означает игнорирование проверок глубины в бэкендах GL.

space

Значение по умолчанию: :data
задает пространство преобразования для прямоугольника, охватывающего график. Возможные входные данные см. в описании Makie.spaces().

ssao

Значение по умолчанию: false
определяет то, будет ли график отрисовываться с использованием ssao (преграждение окружающего света в экранном пространстве). Обратите внимание, что это имеет смысл только для трехмерных графиков и применимо только с fxaa = true.

transformation

Значение по умолчанию: automatic
документация недоступна.

transparency

Значение по умолчанию: false
определяет то, как реализуется прозрачность графика. В GLMakie transparency = true приводит к использованию прозрачности, независимой от порядка.

visible

Значение по умолчанию: true
определяет то, будет ли отрисовываться график.