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

Axis3

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

Взаимодействия с Axis3

Как и Axis, Axis3 поддерживает несколько предопределенных механизмов взаимодействия.

Поворот

Вы можете повернуть представление, щелкнув левой кнопкой мыши и перетащив его. Это взаимодействие зарегистрировано как :dragrotate и использует тип DragRotate.

Масштабирование

Вы можете изменять масштаб оси, используя прокрутку для его увеличения и уменьшения. По умолчанию режим масштабирования сфокусирован на центре оси. Чтобы сфокусировать режим масштабирования на курсоре, задайте zoommode = :cursor. Если во время прокрутки нажать x, y или z, изменение масштаба будет ограничено этим измерением. При одновременном нажатии двух клавиш масштабирование будет ограничено соответствующей плоскостью. Эти клавиши можно изменить с помощью атрибутов xzoomkey, yzoomkey и zzoomkey. Вы всегда можете ограничивать измерения масштаба, задавая атрибутам оси xzoomlock, yzoomlock или zzoomlock значение true.

При viewmode = :free поведение режима масштабирования меняется. Вместо того чтобы влиять только на содержимое оси, масштабирование затрагивает ось в целом. Оно также отключает zoommode = :cursor. Это взаимодействие зарегистрировано как :scrollzoom и использует тип ScrollZoom.

Перемещение

Чтобы переместить представление Axis3, щелкните правой кнопкой мыши и перетащите его. Если во время перемещения нажать x, y или z, оно будет ограничено этим измерением. При одновременном нажатии двух клавиш перемещение будет ограничено соответствующей плоскостью. Эти клавиши можно изменить с помощью атрибутов xtranslationkey, ytranslationkey и ztranslationkey. Вы всегда можете ограничивать перемещение, задавая атрибутам оси xtranslationlock, ytranslationlock или ztranslationlock значение true.

При viewmode = :free добавляется еще один вариант перемещения. Если нажать control при перетаскивании с щелчком правой кнопки мыши, перемещение повлияет на размещение оси в окне, а не на содержимое внутри оси. Это взаимодействие зарегистрировано как :translation и использует тип DragPan.

Сброс ограничений

Для сброса ограничений, например для масштабирования и перемещения, используйте ctrl + left click. Это равносильно вызову reset_limits!(ax). В этом случае ограничения сбрасываются до значений, сохраненных в ax.limits. Если ограничения равны nothing, они вычисляются автоматически. Если вы ранее вызывали limits!, xlims!, ylims! или zlims!, в этом взаимодействии будет задан и сохранен ax.limits. Сбросить режим поворота оси можно с помощью shift + left click. Если viewmode = :free, перемещение оси (а не только его содержимого), также будет сброшено. При одновременном использовании обоих вариантов, т. е. нажатии сочетания ctrl + shift + leftclick, параметры оси будут сброшены полностью. Сюда входят ax.limits, которые сбрасываются до значения nothing с помощью autolimits!(ax). Это взаимодействие зарегистрировано как :limitreset и использует тип LimitReset.

Центрирование на точке

С помощью alt + left click можно отцентрировать ось на курсоре. Учтите, что в зависимости от типа графика можно получить разные результаты. В большинстве случаев используется точка на поверхности графика. Для meshscatter, scatter и производных графиков используется положение рассеянной сетки или маркера. Это взаимодействие зарегистрировано как :cursorfocus и использует тип FocusOnCursor.

Атрибуты

alignmode

Значение по умолчанию: Inside()

Выравнивание сцены в предполагаемой ограничивающей рамке.

aspect

Значение по умолчанию: (1.0, 1.0, 2 / 3)

Управляет длиной трех осей относительно друг друга.

Возможны следующие варианты:

  • Набор из трех чисел, который непосредственно задает относительные длины осей x, y и z

  • :data который устанавливает соотношения длин, равные предельным соотношениям осей. В результате получается "неподатливый" вид, при котором куб в пространстве данных выглядит как куб, а не как кубоид.

  • :equal что является сокращением от (1, 1, 1)

using CairoMakie
fig = Figure()

Axis3(fig[1, 1], aspect = (1, 1, 1), title = "aspect = (1, 1, 1)")
Axis3(fig[1, 2], aspect = (2, 1, 1), title = "aspect = (2, 1, 1)")
Axis3(fig[2, 1], aspect = (1, 2, 1), title = "aspect = (1, 2, 1)")
Axis3(fig[2, 2], aspect = (1, 1, 2), title = "aspect = (1, 1, 2)")

fig
266f3bf

using CairoMakie
using FileIO

fig = Figure()

brain = load(assetpath("brain.stl"))

ax1 = Axis3(fig[1, 1], aspect = :equal, title = "aspect = :equal")
ax2 = Axis3(fig[1, 2], aspect = :data, title = "aspect = :data")

for ax in [ax1, ax2]
    mesh!(ax, brain, color = :gray80)
end

fig
1da2f4f

axis_translation_mod

Значение по умолчанию: Keyboard.left_control | Keyboard.right_control

Устанавливает клавишу, которую необходимо нажать для перемещения всей оси (в отличие от содержимого) с помощью viewmode = :free.

azimuth

Значение по умолчанию: 1.275pi

Азимутальный (левый / правый) угол наклона камеры.

Около azimuth = 0, камера смотрит на ось из точки на положительной оси x и оттуда поворачивается вправо с увеличением значений. При значении по умолчанию 1,275π ось x перемещается вправо, а ось y - влево.

using CairoMakie
fig = Figure()

for (i, azimuth) in enumerate([0, 0.1, 0.2, 0.3, 0.4, 0.5])
    Axis3(fig[fldmod1(i, 3)...], azimuth = azimuth * pi,
        title = "azimuth = $(azimuth)π", viewmode = :fit)
end

fig
35df3d5

backgroundcolor

Значение по умолчанию: :transparent

Цвет фона

clip

Значение по умолчанию: true

Определяет, будет ли содержимое обрезано по оси кадра. Обратите внимание, что вы также можете перезаписать обрезку для каждого участка, установив clip_planes = Plane3f[].

clip_decorations

Значение по умолчанию: false

Определяет, будут ли украшения вырезаны за пределами области макета, назначенной оси.

cursorfocuskey

Значение по умолчанию: Keyboard.left_alt & Mouse.left

Устанавливает клавишу/кнопку для центрирования оси 3 в текущем наведенном положении.

dim1_conversion

Значение по умолчанию: nothing

Глобальное состояние для преобразования измерения x.

dim2_conversion

Значение по умолчанию: nothing

Глобальное состояние для преобразования измерения y.

dim3_conversion

Значение по умолчанию: nothing

Глобальное состояние для преобразования измерения z .

elevation

Значение по умолчанию: pi / 8

Угол возвышения (вверх/ вниз) камеры. Возможные значения находятся в диапазоне от -pi/2 (при взгляде снизу вверх) до +pi/2 (при взгляде сверху вниз).

using CairoMakie
fig = Figure()

for (i, elevation) in enumerate([0, 0.05, 0.1, 0.15, 0.2, 0.25])
    Axis3(fig[fldmod1(i, 3)...], elevation = elevation * pi,
        title = "elevation = $(elevation)π", viewmode = :fit)
end

fig
f4c91c1

front_spines

Значение по умолчанию: false

Управляет созданием 4-х шипов для закрытия рамок контура

halign

Значение по умолчанию: :center

Горизонтальное выравнивание сцены в предполагаемой ограничивающей рамке.

height

Значение по умолчанию: nothing

Настройка высоты сцены.

limits

Значение по умолчанию: (nothing, nothing, nothing)

Ограничения, установленные пользователем вручную. Они восстанавливаются при вызове reset_limits! и обнуляются пользователем autolimits!. Может быть либо кортежем (xlow, xhigh, ylow, yhigh, zlow, zhigh), либо кортежем (nothing_or_xlims, nothing_or_ylims, nothing_or_zlims). Устанавливаются xlims!, ylims!, zlims! и limits!.

near

Значение по умолчанию: 0.001

Устанавливает минимальное значение для near. Увеличение этого значения приведет к тому, что объекты окажутся ближе к кадру камеры. Слишком большое уменьшение этого значения приведет к неточным значениям глубины. Должно быть > 0.

perspectiveness

Значение по умолчанию: 0.0

Эта настройка предлагает простой масштаб от 0 до 1, где 0 выглядит как ортогональная проекция (без перспективы), а 1 - как изображение в четкой перспективе. В большинстве приложений для визуализации данных следует избегать использования перспективы, поскольку это затрудняет правильную интерпретацию данных. Однако это может быть полезно, если эстетика важнее нейтрального представления.

using CairoMakie
fig = Figure()

for (i, perspectiveness) in enumerate(range(0, 1, length = 6))
    ax = Axis3(fig[fldmod1(i, 3)...]; perspectiveness, protrusions = (0, 0, 0, 15),
        title = ":perspectiveness = $(perspectiveness)")
    hidedecorations!(ax)
end

fig
8345ae0

protrusions

Значение по умолчанию: 30

Выступы определяют, сколько места зарезервировано для меток и т.д. по бокам экрана Axis3. В отличие от Axis, Axis3 в настоящее время эти значения не устанавливаются автоматически в зависимости от свойств галочек и меток. Это связано с тем, что эффективные выступы также зависят от поворота и масштабирования оси cuboid, которые меняются всякий раз, когда Axis3 перемещается в макете. Таким образом, автоматическое обновление выступов может привести к бесконечному циклу обновления макета.

Значение по умолчанию для 30 для всех сторон - это просто эвристический параметр, который может привести к столкновению оформления осей с Figure границей или другими элементами графика. Если это так, вы можете попробовать увеличить значение (значения).

То protrusions атрибут принимает одно число для всех сторон или кортеж из (left, right, bottom, top).

using CairoMakie
    fig = Figure(backgroundcolor = :gray97)
    Box(fig[1, 1], strokewidth = 0) # visualizes the layout cell
    Axis3(fig[1, 1], protrusions = 100, viewmode = :stretch,
        title = "protrusions = 100")
    fig
ff74f41

using CairoMakie
    fig = Figure(backgroundcolor = :gray97)
    Box(fig[1, 1], strokewidth = 0) # visualizes the layout cell
    ax = Axis3(fig[1, 1], protrusions = (0, 0, 0, 20), viewmode = :stretch,
        title = "protrusions = (0, 0, 0, 20)")
    hidedecorations!(ax)
    fig
2949107

targetlimits

Значение по умолчанию: Rect3d(Vec3d(0), Vec3d(1))

Ограничения, которые пытается установить axis, задаются другими ограничениями, такими как aspect. Не устанавливайте это напрямую, используйте xlims!, ylims! или limits! вместо.

tellheight

Значение по умолчанию: true

Определяет, может ли родительский макет подстраиваться под высоту этого элемента

tellwidth

Значение по умолчанию: true

Определяет, может ли родительский макет подстраиваться под ширину этого элемента

title

Значение по умолчанию: ""

Строка заголовка оси.

titlealign

Значение по умолчанию: :center

Выравнивание заголовка по горизонтали.

titlecolor

Значение по умолчанию: @inherit :textcolor :black

Цвет заголовка

titlefont

Значение по умолчанию: :bold

Семейство шрифтов заголовка.

titlegap

Значение по умолчанию: 4.0

Промежуток между осью и заголовком.

titlesize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер шрифта заголовка.

titlevisible

Значение по умолчанию: true

Определяет, виден ли заголовок.

valign

Значение по умолчанию: :center

Вертикальное выравнивание сцены в предполагаемой ограничивающей рамке.

viewmode

Значение по умолчанию: :fitzoom

Режим просмотра влияет на конечную проекцию оси, по-разному размещая кубовидную ось в доступном пространстве.

  • :fit используется фиксированное масштабирование, при котором плотная сфера вокруг кубоида касается края рамки. Это означает, что масштабирование не меняется при повороте оси (видимый размер оси остается неизменным), но используется не все доступное пространство. Выбранное значение aspect поддерживается с помощью этой настройки.

  • :fitzoom используется переменное масштабирование, при котором ближайший угол прямоугольной формы касается края рамки. При повороте оси видимый размер оси изменяется, что может привести к визуальному эффекту "накачки". Выбранный параметр aspect также поддерживается с помощью этой настройки.

  • :stretch углы прямоугольника подтягиваются к краям рамки таким образом, чтобы полностью заполнить доступное пространство. Выбранный параметр aspect не поддерживается с помощью этой настройки, поэтому :stretch не следует использовать, если требуется определенный аспект.

  • :free ведет себя как :fit , но изменяет некоторые взаимодействия. Масштабирование влияет на всю ось, а не только на содержимое. Это позволяет вам увеличивать масштаб содержимого, не ограничивая его трехмерной рамкой оси 3. zoommode = :cursor отключено. Переводы также не могут повлиять на ось в целом с помощью control + right drag.

using CairoMakie
fig = Figure()

for (i, viewmode) in enumerate([:fit, :fitzoom, :stretch])
    for (j, elevation) in enumerate([0.1, 0.2, 0.3] .* pi)

        Label(fig[i, 1:3, Top()], "viewmode = $(repr(viewmode))", font = :bold)

        # show the extent of each cell using a box
        Box(fig[i, j], strokewidth = 0, color = :gray95)

        ax = Axis3(fig[i, j]; viewmode, elevation, protrusions = 0, aspect = :equal)
        hidedecorations!(ax)

    end
end

fig
8834f91

width

Значение по умолчанию: nothing

Настройка ширины сцены.

xautolimitmargin

Значение по умолчанию: (0.05, 0.05)

Относительные границы, добавленные к автоматическим ограничениям в направлении x.

xgridcolor

Значение по умолчанию: RGBAf(0, 0, 0, 0.12)

Цвет сетки x

xgridvisible

Значение по умолчанию: true

Определяет, видна ли x-сетка

xgridwidth

Значение по умолчанию: 1

Ширина сетки x

xlabel

Значение по умолчанию: "x"

Метка "х"

xlabelalign

Значение по умолчанию: Makie.automatic

Выровнять метку по x

xlabelcolor

Значение по умолчанию: @inherit :textcolor :black

Цвет надписи x

xlabelfont

Значение по умолчанию: :regular

Шрифт надписи x

xlabeloffset

Значение по умолчанию: 40

Смещение метки x

xlabelrotation

Значение по умолчанию: Makie.automatic

Поворот метки x в радианах

xlabelsize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер этикетки x

xlabelvisible

Значение по умолчанию: true

Определяет, видна ли метка x

xreversed

Значение по умолчанию: false

Определяет направление оси x вправо (false) или влево (true) в ориентации камеры по умолчанию.

using CairoMakie
using FileIO

fig = Figure()

brain = load(assetpath("brain.stl"))

ax1 = Axis3(fig[1, 1], title = "xreversed = false")
ax2 = Axis3(fig[2, 1], title = "xreversed = true", xreversed = true)
for ax in [ax1, ax2]
    mesh!(ax, brain, color = getindex.(brain.position, 1))
end

fig
f26b6eb

xspinecolor_1

Значение по умолчанию: :black

Цвет корешка x 1, на котором отображаются галочки

xspinecolor_2

Значение по умолчанию: :black

Цвет корешка x 2 по направлению к центру

xspinecolor_3

Значение по умолчанию: :black

Цвет корешка x 3 противоположен цвету галочек

xspinecolor_4

Значение по умолчанию: :black

Цвет корешка x 4

xspinesvisible

Значение по умолчанию: true

Определяет, виден ли x-образный корешок

xspinewidth

Значение по умолчанию: 1

Ширина корешка x

xtickcolor

Значение по умолчанию: :black

Цвет галочки x

xtickformat

Значение по умолчанию: Makie.automatic

Формат x-тика

xticklabelcolor

Значение по умолчанию: @inherit :textcolor :black

Цвет галочки x

xticklabelfont

Значение по умолчанию: :regular

Шрифт с галочкой x

xticklabelpad

Значение по умолчанию: 5

Панель с надписью "x"

xticklabelsize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер галочки x

xticklabelsvisible

Значение по умолчанию: true

Определяет, видны ли метки с крестиками

xticks

Значение по умолчанию: WilkinsonTicks(5; k_min = 3)

Крестик тикает

xticksize

Значение по умолчанию: 6

Размер меток xtick.

xticksvisible

Значение по умолчанию: true

Определяет, видны ли крестики

xtickwidth

Значение по умолчанию: 1

Ширина тика x

xtranslationkey

Значение по умолчанию: Keyboard.x

Клавиша для ограничения перемещения в направлении x.

xtranslationlock

Значение по умолчанию: false

Блокирует интерактивный перевод в направлении x.

xypanelcolor

Значение по умолчанию: :transparent

Цвет панели xy

xypanelvisible

Значение по умолчанию: true

Определяет, видна ли панель xy

xzoomkey

Значение по умолчанию: Keyboard.x

Клавиша для ограничения масштабирования в направлении x.

xzoomlock

Значение по умолчанию: false

Блокирует интерактивное масштабирование в направлении x.

xzpanelcolor

Значение по умолчанию: :transparent

Цвет панели xz

xzpanelvisible

Значение по умолчанию: true

Определяет, видна ли панель xz

yautolimitmargin

Значение по умолчанию: (0.05, 0.05)

Относительные границы, добавленные к автоматическим ограничениям в направлении y.

ygridcolor

Значение по умолчанию: RGBAf(0, 0, 0, 0.12)

Цвет сетки y

ygridvisible

Значение по умолчанию: true

Определяет, видна ли y-образная сетка

ygridwidth

Значение по умолчанию: 1

Ширина сетки y

ylabel

Значение по умолчанию: "y"

Метка y

ylabelalign

Значение по умолчанию: Makie.automatic

Выравнивание метки по y

ylabelcolor

Значение по умолчанию: @inherit :textcolor :black

Цвет надписи y

ylabelfont

Значение по умолчанию: :regular

Шрифт надписи y

ylabeloffset

Значение по умолчанию: 40

Смещение метки y

ylabelrotation

Значение по умолчанию: Makie.automatic

Поворот метки y в радианах

ylabelsize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер этикетки y

ylabelvisible

Значение по умолчанию: true

Определяет, видна ли метка y

yreversed

Значение по умолчанию: false

Определяет направление оси y влево (значение false) или вправо (значение true) в ориентации камеры по умолчанию.

using CairoMakie
using FileIO

fig = Figure()

brain = load(assetpath("brain.stl"))

ax1 = Axis3(fig[1, 1], title = "yreversed = false")
ax2 = Axis3(fig[2, 1], title = "yreversed = true", yreversed = true)
for ax in [ax1, ax2]
    mesh!(ax, brain, color = getindex.(brain.position, 2))
end

fig
dbe6807

yspinecolor_1

Значение по умолчанию: :black

Цвет корешка y 1, на котором отображаются галочки

yspinecolor_2

Значение по умолчанию: :black

Цвет y-образного корешка 2 по направлению к центру

yspinecolor_3

Значение по умолчанию: :black

Цвет y-образного корешка 3 противоположен цвету галочек

yspinecolor_4

Значение по умолчанию: :black

Цвет y-образного корешка 4

yspinesvisible

Значение по умолчанию: true

Определяет, виден ли y-образный корешок

yspinewidth

Значение по умолчанию: 1

Ширина y-образного корешка

ytickcolor

Значение по умолчанию: :black

Цвет галочки y

ytickformat

Значение по умолчанию: Makie.automatic

Формат с отметкой y

yticklabelcolor

Значение по умолчанию: @inherit :textcolor :black

Цвет галочки y

yticklabelfont

Значение по умолчанию: :regular

Шрифт с меткой y

yticklabelpad

Значение по умолчанию: 5

Панель с меткой y

yticklabelsize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер метки y

yticklabelsvisible

Значение по умолчанию: true

Определяет, видны ли метки с символами y

yticks

Значение по умолчанию: WilkinsonTicks(5; k_min = 3)

Буква "y" тикает

yticksize

Значение по умолчанию: 6

Размер отметок от наклеек.

yticksvisible

Значение по умолчанию: true

Определяет, видны ли галочки y

ytickwidth

Значение по умолчанию: 1

Ширина тика y

ytranslationkey

Значение по умолчанию: Keyboard.y

Ключ для ограничения перемещений в направлении y.

ytranslationlock

Значение по умолчанию: false

Блокирует интерактивный перевод в направлении y.

yzoomkey

Значение по умолчанию: Keyboard.y

Клавиша для ограничения масштабирования в направлении y.

yzoomlock

Значение по умолчанию: false

Блокирует интерактивное масштабирование в направлении y.

yzpanelcolor

Значение по умолчанию: :transparent

Цвет панели yz

yzpanelvisible

Значение по умолчанию: true

Определяет, видна ли панель yz

zautolimitmargin

Значение по умолчанию: (0.05, 0.05)

Относительные границы, добавленные к автоматическим ограничениям в направлении z.

zgridcolor

Значение по умолчанию: RGBAf(0, 0, 0, 0.12)

Цвет сетки z

zgridvisible

Значение по умолчанию: true

Определяет, видна ли z-образная сетка

zgridwidth

Значение по умолчанию: 1

Ширина сетки z

zlabel

Значение по умолчанию: "z"

Метка z

zlabelalign

Значение по умолчанию: Makie.automatic

Выравнивание метки по z

zlabelcolor

Значение по умолчанию: @inherit :textcolor :black

Цвет метки z

zlabelfont

Значение по умолчанию: :regular

Шрифт z-метки

zlabeloffset

Значение по умолчанию: 50

Смещение метки z

zlabelrotation

Значение по умолчанию: Makie.automatic

Поворот метки z в радианах

zlabelsize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер этикетки z

zlabelvisible

Значение по умолчанию: true

Определяет, видна ли метка z

zoommode

Значение по умолчанию: :center

Определяет, какая точка отсчета используется при масштабировании. Может быть :center для масштабирования по центру или :cursor для масштабирования примерно по центру, где находится курсор. Эта функция отключена с помощью viewmode = :free.

zreversed

Значение по умолчанию: false

Определяет направление оси z вверх (false) или вниз (true) при ориентации камеры по умолчанию.

using CairoMakie
using FileIO

fig = Figure()

brain = load(assetpath("brain.stl"))

ax1 = Axis3(fig[1, 1], title = "zreversed = false")
ax2 = Axis3(fig[2, 1], title = "zreversed = true", zreversed = true)
for ax in [ax1, ax2]
    mesh!(ax, brain, color = getindex.(brain.position, 3))
end

fig
777684a

zspinecolor_1

Значение по умолчанию: :black

Цвет корешка z 1, на котором отображаются галочки

zspinecolor_2

Значение по умолчанию: :black

Цвет корешка z 2 по направлению к центру

zspinecolor_3

Значение по умолчанию: :black

Цвет z-образного корешка 3 противоположен цвету галочек

zspinecolor_4

Значение по умолчанию: :black

Цвет z-образного корешка 4

zspinesvisible

Значение по умолчанию: true

Определяет, виден ли z-образный корешок

zspinewidth

Значение по умолчанию: 1

Ширина z-образного корешка

ztickcolor

Значение по умолчанию: :black

Цвет галочки z

ztickformat

Значение по умолчанию: Makie.automatic

Формат z-тика

zticklabelcolor

Значение по умолчанию: @inherit :textcolor :black

Цвет галочки z

zticklabelfont

Значение по умолчанию: :regular

Шрифт с меткой z

zticklabelpad

Значение по умолчанию: 10

Панель с меткой z

zticklabelsize

Значение по умолчанию: @inherit :fontsize 16.0f0

Размер галочки z

zticklabelsvisible

Значение по умолчанию: true

Определяет, видны ли метки в виде z-меток

zticks

Значение по умолчанию: WilkinsonTicks(5; k_min = 3)

Точка z тикает

zticksize

Значение по умолчанию: 6

Размер меток ztick.

zticksvisible

Значение по умолчанию: true

Определяет, видны ли z-галочки

ztickwidth

Значение по умолчанию: 1

Ширина z-метки

ztranslationkey

Значение по умолчанию: Keyboard.z

Ключ для ограничения перемещений в направлении y.

ztranslationlock

Значение по умолчанию: false

Блокирует интерактивный перевод в направлении z.

zzoomkey

Значение по умолчанию: Keyboard.z

Клавиша для ограничения масштабирования в направлении z.

zzoomlock

Значение по умолчанию: false

Блокирует интерактивное масштабирование в направлении z.