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

arrows

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

arrows(points, directions; kwargs...)
arrows(x, y, u, v)
arrows(x::AbstractVector, y::AbstractVector, u::AbstractMatrix, v::AbstractMatrix)
arrows(x, y, z, u, v, w)
arrows(x, y, [z], f::Function)

Строит стрелки в указанных точках с указанными компонентами. u и v интерпретируются как компоненты вектора (u — это x, а v — y), и векторы строятся с задними концами в точках x, y.

Если x, y, u, v — это <: AbstractVector, каждая «строка» отображается как один вектор.

Если u, v — это <: AbstractMatrix, то x и y интерпретируются как спецификации сетки и u, v строятся как стрелки вдоль сетки.

arrows также может работать в трех измерениях.

Если вместо u, v, [w] предоставлена функция (Function), она должна принимать Point в качестве входных данных и возвращать Point, Vec или другой подобный массиву объект соответствующей размерности.

Тип графика

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

Примеры

using CairoMakie
f = Figure(size = (800, 800))
Axis(f[1, 1], backgroundcolor = "black")

xs = LinRange(0, 2pi, 20)
ys = LinRange(0, 3pi, 20)
us = [sin(x) * cos(y) for x in xs, y in ys]
vs = [-cos(x) * sin(y) for x in xs, y in ys]
strength = vec(sqrt.(us .^ 2 .+ vs .^ 2))

arrows!(xs, ys, us, vs, arrowsize = 10, lengthscale = 0.3,
    arrowcolor = strength, linecolor = strength)

f
87f9690

using GLMakie
ps = [Point3f(x, y, z) for x in -5:2:5 for y in -5:2:5 for z in -5:2:5]
ns = map(p -> 0.1 * Vec3f(p[2], p[3], p[1]), ps)
arrows(
    ps, ns, fxaa=true, # включение сглаживания
    linecolor = :gray, arrowcolor = :black,
    linewidth = 0.1, arrowsize = Vec3f(0.3, 0.3, 0.4),
    align = :center, axis=(type=Axis3,)
)
2dc0ac2

using GLMakie
using LinearAlgebra

ps = [Point3f(x, y, z) for x in -5:2:5 for y in -5:2:5 for z in -5:2:5]
ns = map(p -> 0.1 * Vec3f(p[2], p[3], p[1]), ps)
lengths = norm.(ns)
arrows(
    ps, ns, fxaa=true, # включение сглаживания
    color=lengths,
    linewidth = 0.1, arrowsize = Vec3f(0.3, 0.3, 0.4),
    align = :center, axis=(type=Axis3,)
)
65d5353

arrows также может принимать функцию f(x::Point{N})::Point{N}, которая возвращает вектор стрелки, если задано ее начало.

using CairoMakie
fig = Figure(size = (800, 800))
ax = Axis(fig[1, 1], backgroundcolor = "black")
xs = LinRange(0, 2pi, 20)
ys = LinRange(0, 3pi, 20)
# явный метод
us = [sin(x) * cos(y) for x in xs, y in ys]
vs = [-cos(x) * sin(y) for x in xs, y in ys]
strength = vec(sqrt.(us .^ 2 .+ vs .^ 2))
# метод функции
arrow_fun(x) = Point2f(sin(x[1])*cos(x[2]), -cos(x[1])*sin(x[2]))
arrows!(ax, xs, ys, arrow_fun, arrowsize = 10, lengthscale = 0.3,
    arrowcolor = strength, linecolor = strength)
fig
7c52d57

Атрибуты

align

Значение по умолчанию: :origin
задает способ расположения стрелок. По умолчанию стрелки начинаются в указанных позициях и тянутся в указанных направлениях. Если этот атрибут имеет значение :head, :lineend, :tailend, :headstart или :center, заданные позиции будут находиться между началом и концом каждой стрелки.

alpha

Значение по умолчанию: 1.0
альфа-значение цветовой карты или атрибута цвета. Несколько альфа-значений, как в plot(alpha=0.2, color=(:red, 0.5), перемножаются.

arrowcolor

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

arrowhead

Значение по умолчанию: automatic
определяет маркер (в двух измерениях) или сетку (в трех измерениях), которые используются в качестве острия стрелки. По умолчанию в двух измерениях и коническая сетка в трех измерениях. В последнем случае сетка должна начинаться в точке Point3f(0) и указывать в положительном направлении оси z.

arrowsize

Значение по умолчанию: automatic
масштабирует размер острия стрелки. По умолчанию 0.3 в двухмерном случае и Vec3f(0.2, 0.2, 0.3) в трехмерном. В последнем случае первые два компонента масштабируют радиус (в направлении x/y), а последний — длину конуса. Если arrowsize имеет значение 1, конус будет иметь диаметр и длину 1.

arrowtail

Значение по умолчанию: automatic
определяет сетку, используемую для отрисовки заднего конца стрелки в трех измерениях. Она должна начинаться в точке Point3f(0) и лежать в отрицательном направлении оси z. По умолчанию используется цилиндр. Не влияет на двухмерные графики.

backlight

Значение по умолчанию: 0.0
задает вес для расчета вторичного освещения с инвертированными нормалями.

clip_planes

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

color

Значение по умолчанию: :black
задает цвет острия и линии стрелки. Можно переопределить по отдельности с помощью linecolor и arrowcolor.

colormap

Значение по умолчанию: @inherit colormap :viridis
задает цветовую карту, из которой производится выборка для числовых значений color. Также можно использовать PlotUtils.cgrad(...), Makie.Reverse(any_colormap) или любой символ из ColorBrewer или PlotUtils. Чтобы увидеть все доступные цветовые градиенты, можно вызвать Makie.available_gradients().

colorrange

Значение по умолчанию: automatic
значения, представляющие начальную и конечную точки colormap.

colorscale

Значение по умолчанию: identity
функция преобразования цвета. Может быть любой функцией, но с Colorbar хорошо работают только identity, log, log2, log10, sqrt, logit, Makie.pseudolog10 и Makie.Symlog10.

depth_shift

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

diffuse

Значение по умолчанию: 1.0
определяет то, насколько сильно красный, зеленый и синий каналы реагируют на диффузное (рассеянное) освещение.

fxaa

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

highclip

Значение по умолчанию: automatic
цвет для любого значения выше цветового диапазона.

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.

lengthscale

Значение по умолчанию: 1.0
масштабирует длину заднего конца стрелки.

linecolor

Значение по умолчанию: automatic
задает цвет заднего конца стрелки, представленного линией в двух измерениях. При значении automatic копируется color.

linestyle

Значение по умолчанию: nothing
задает стиль линии, используемой в двух измерениях. Не применяется к трехмерным графикам.

linewidth

Значение по умолчанию: automatic
масштабирует толщину или диаметр заднего конца стрелки. По умолчанию 1 в двухмерном случае и 0.05 в трехмерном.

lowclip

Значение по умолчанию: automatic
цвет для любого значения ниже цветового диапазона.

markerspace

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

material

Значение по умолчанию: nothing
используемый только в RPRMakie атрибут для задания сложных материалов RadeonProRender. Внимание! Способ задания материала RPR может измениться, и другие бэкенды будут игнорировать этот атрибут.

model

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

nan_color

Значение по умолчанию: :transparent
цвет для значений NaN.

normalize

Значение по умолчанию: false
по умолчанию длины направлений, заданные для arrows, используются для масштабирования длины задних концов стрелок. Если этот атрибут имеет значение true, направления нормализуются и это масштабирование игнорируется.

overdraw

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

quality

Значение по умолчанию: 32
определяет количество подразбиений угла, используемое при создании сеток острия и заднего конца стрелки. Если возникают проблемы с производительностью, можно попробовать уменьшить это значение. Применяется только к трехмерным графикам.

shading

Значение по умолчанию: automatic
задает используемый алгоритм освещения. Возможные значения: NoShading (без освещения), FastShading (AmbientLight + PointLight) или MultiLightShading (несколько источников света, только для GLMakie). Обратите внимание, что это не влияет на RPRMakie.

shininess

Значение по умолчанию: 32.0
задает резкость отражения.

space

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

specular

Значение по умолчанию: 0.2
определяет то, насколько сильно объект отражает свет в красном, зеленом и синем каналах.

ssao

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

transformation

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

transparency

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

visible

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