contourf
|
Страница в процессе перевода. |
#
Makie.contourf — Function
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
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
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
Относительный режим
Иногда бывает полезно отбросить одну часть диапазона значений, обычно в сторону внешней границы. Вместо того чтобы указывать включаемые уровни вручную, можно задать атрибуту 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
Криволинейные сетки
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
Атрибуты
clip_planes
Значение по умолчанию: automatic
Плоскости обрезки позволяют выполнять обрезку в трехмерном пространстве. Вы можете задать вектор длиной до 8 Plane3f Здесь вы можете задать плоскости, за которыми участки будут обрезаны (т.е. станут невидимыми). По умолчанию плоскости клипа наследуются от родительского графика или сцены. Вы можете удалить родительский элемент clip_planes проходя мимо Plane3f[].
depth_shift
Значение по умолчанию: 0.0
настраивает значение глубины участка после всех других преобразований, т.е. в пространстве фрагмента, где 0 <= depth <= 1. This only applies to GLMakie and WGLMakie and can be used to adjust render order (like a tunable overdraw).
extendhigh
Значение по умолчанию: nothing
В режиме :normal, если вы хотите отобразить полосу от верхнего края до Inf, установите extendhigh в значение :auto, чтобы придать расширению тот же цвет, что и у последнего уровня, или укажите цвет напрямую (значение по умолчанию nothing означает отсутствие расширенной полосы).
extendlow
Значение по умолчанию: nothing
В режиме :normal, если вы хотите отобразить полосу от -Inf до нижнего края, установите extendlow в значение :auto, чтобы придать расширению тот же цвет, что и первому уровню, или укажите цвет напрямую (значение по умолчанию nothing означает отсутствие расширенной полосы).
fxaa
Значение по умолчанию: true
Регулирует, будет ли график отображаться с использованием fxaa (сглаживание, только GLMakie).
inspectable
Значение по умолчанию: @inherit inspectable
Определяет, должен ли этот график отображаться в DataInspector. Значение по умолчанию зависит от темы родительской сцены.
inspector_clear
Значение по умолчанию: automatic
Sets a callback function (inspector, plot) -> ... для очистки пользовательских индикаторов в DataInspector.
inspector_hover
Значение по умолчанию: automatic
Устанавливает функцию обратного вызова (inspector, plot, index) -> ... которая заменяет функцию по умолчанию show_data методы.
inspector_label
Значение по умолчанию: automatic
Устанавливает функцию обратного вызова (plot, index, position) -> string , которая заменяет метку по умолчанию, сгенерированную DataInspector.
levels
Значение по умолчанию: 10
Может быть либо
-
an
Int, который создает n уровней или полос одинаковой ширины -
an
AbstractVector{<:Real}, в котором перечисляются n последовательных ребер от нижнего к верхнему, что приводит к n-1 уровням или полосам
Если levels это Int, контурный график будет прямоугольным, так как все значения zs будут покрыты от края до края. Вот почему Axis по умолчанию для таких контурных графиков установлены жесткие ограничения. Однако, если вы укажете levels как AbstractVector{<:Real}, обратите внимание, что ограничения по осям включают поля по умолчанию, поскольку контурный график может иметь неправильную форму. Вы можете использовать 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!.
overdraw
Значение по умолчанию: false
Определяет, будет ли график отображаться поверх других графиков. В частности, это означает игнорирование проверок глубины в GL-интерфейсах
space
Значение по умолчанию: :data
задает область преобразования для прямоугольника, охватывающего участок. Видеть Makie.spaces() для получения возможных исходных данных.
ssao
Значение по умолчанию: false
Настраивает, будет ли отображаться график с помощью ssao (сглаживания окружающего пространства экрана). Обратите внимание, что это имеет смысл только для 3D-графиков и применимо только к fxaa = true.