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

voronoiplot

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

voronoiplot(x, y, values; kwargs...)
voronoiplot(values; kwargs...)
voronoiplot(x, y; kwargs...)
voronoiplot(positions; kwargs...)
voronoiplot(vorn::VoronoiTessellation; kwargs...)

Генерирует и строит мозаичную диаграмму Вороного на основе данных типа heatmap или точечных данных. Мозаику также можно передать напрямую как VoronoiTessellation из DelaunayTriangulation.jl.

Тип графика

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

Примеры

voronoiplot генерирует ячейку для каждой переданной позиции, как и heatmap, однако форма ячеек может быть не только прямоугольной. Его можно вызвать с основанными на точках (как scatter или lines) или подобными heatmap входными данными.

using CairoMakie
using Random
Random.seed!(1234)


f = Figure(size=(1200, 450))
ax = Axis(f[1, 1])
voronoiplot!(ax, rand(Point2f, 50))

ax = Axis(f[1, 2])
voronoiplot!(ax, rand(10, 10), rand(10, 10), rand(10, 10))
f
577f97b

Для генерации ячеек voronoiplot использует мозаичную диаграмму Вороного из пакета DelaunayTriangulation.jl. Это можно сделать самостоятельно и напрямую построить возвращаемый объект VoronoiTessellation.

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

points = rand(2, 50)
tri = triangulate(points)
vorn = voronoi(tri)
f, ax, tr = voronoiplot(vorn)
f
ca8a428

В случае со стандартными мозаичными диаграммами неограниченные многоугольники обрезаются по ограничивающему прямоугольнику, определяемому автоматически по умолчанию, или по заданной пользователем форме обрезки (прямоугольник или круг). Автоматический ограничивающий прямоугольник определяется ограничивающим прямоугольником генераторов тесселяции (то есть предоставленных точек), расширенным на некоторый коэффициент unbounded_edge_extension_factor (по умолчанию 0.1), пропорциональный длинам сторон прямоугольника.

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

z = LinRange(0, 1, 250) .* exp.(LinRange(0, 16pi, 250) .* im)
f, ax, tr = voronoiplot(real(z), imag(z), unbounded_edge_extension_factor = 0.4, markersize = 7)
f
1314d3e

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

x = LinRange(0, 16pi, 50)
y = sin.(x)
bb = BBox(-1, 16pi + 1, -30, 30) # (xmin, xmax, ymin, ymax)
f, ax, tr = voronoiplot(x, y, show_generators=false,
    clip=bb, color=:white, strokewidth=2)
f
76dba0a

Для обрезанных и центроидальных тесселяций нет неограниченных многоугольников.

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

points = [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)]
tri = triangulate(points)
refine!(tri; max_area = 0.001)
vorn = voronoi(tri, clip = true)
f, ax, tr = voronoiplot(vorn, show_generators = true, markersize = 13, marker = 'x')
f
5229068

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

angles = range(0, 2pi, length = 251)[1:end-1]
x = cos.(angles)
y = sin.(angles)
points = tuple.(x, y)
tri = triangulate(points)
refine!(tri; max_area = 0.001)
vorn = voronoi(tri, clip = true)
smooth_vorn = centroidal_smooth(vorn)
f, ax, tr = voronoiplot(smooth_vorn, show_generators=false)
f
4c20903

Атрибуты

alpha

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

clip

Значение по умолчанию: automatic
задает область обрезки для сгенерированных многоугольников, которой может быть объект Rect2 (или BBox), Tuple с элементами (xmin, xmax, ymin, ymax) или объект Circle. Все, что находится за пределами указанной области, удаляется. Если аргумент clip не задан, его значение определяется автоматически с помощью unbounded_edge_extension_factor и имеет тип Rect.

color

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

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.

highclip

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

lowclip

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

marker

Значение по умолчанию: @inherit marker
задает форму точек.

markercolor

Значение по умолчанию: @inherit markercolor
задает цвет точек.

markersize

Значение по умолчанию: @inherit markersize
задает размер точек.

nan_color

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

show_generators

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

smooth

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

strokecolor

Значение по умолчанию: @inherit patchstrokecolor
задает цвет штриха для многоугольников.

strokewidth

Значение по умолчанию: 1.0
задает толщину штриха для многоугольников.

unbounded_edge_extension_factor

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