scipy.spatial.

Voronoi#

scipy.spatial.Voronoi(points, furthest_site=False, incremental=False, qhull_options=None)#

N 维度的 Voronoi 图。

0.12.0 版新增。

参数:
points数组形状为 (npoints, ndim) 的浮点型 ndarray

点坐标,以这些坐标构建 Voronoi 图

furthest_site布尔值,可选

是否计算最远点 Voronoi 图。默认值:False

incremental布尔值,可选

允许增量添加新点。这会占用一些其他资源。

qhull_options字符串,可选

传递给 Qhull 的附加选项。有关详细信息,请参见 Qhull 手册。(默认值:维度数 > 4 时为“Qbb Qc Qz Qx”,否则为“Qbb Qc Qz”。增量模式省略“Qz”。)

引发异常:
QhullError

在 Qhull 遇到错误条件时引发,例如无法解决几何退化问题时。

ValueError

如果给定的数组不兼容时引发。

备注

使用 Qhull 库 计算 Voronoi 图。

示例

点集 Voronoi 图

>>> import numpy as np
>>> points = np.array([[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2],
...                    [2, 0], [2, 1], [2, 2]])
>>> from scipy.spatial import Voronoi, voronoi_plot_2d
>>> vor = Voronoi(points)

绘制点

>>> import matplotlib.pyplot as plt
>>> fig = voronoi_plot_2d(vor)
>>> plt.show()
../../_images/scipy-spatial-Voronoi-1_00_00.png

Voronoi 顶点

>>> vor.vertices
array([[0.5, 0.5],
       [0.5, 1.5],
       [1.5, 0.5],
       [1.5, 1.5]])

有一个有限的 Voronoi 区域和四个有限的 Voronoi 山脊

>>> vor.regions
[[], [-1, 0], [-1, 1], [1, -1, 0], [3, -1, 2], [-1, 3], [-1, 2], [0, 1, 3, 2], [2, -1, 0], [3, -1, 1]]
>>> vor.ridge_vertices
[[-1, 0], [-1, 0], [-1, 1], [-1, 1], [0, 1], [-1, 3], [-1, 2], [2, 3], [-1, 3], [-1, 2], [1, 3], [0, 2]]

山脊垂直于在以下输入点之间绘制的线之间

>>> vor.ridge_points
array([[0, 3],
       [0, 1],
       [2, 5],
       [2, 1],
       [1, 4],
       [7, 8],
       [7, 6],
       [7, 4],
       [8, 5],
       [6, 3],
       [4, 5],
       [4, 3]], dtype=int32)
属性:
pointsndarray 数组,形状(npoints,ndim)

输入点的坐标。

verticesndarray 数组,形状(nvertices,ndim)

Voronoi 顶点的坐标。

ridge_points整数 ndarray 数组,形状 (nridges, 2)

每个 Voronoi 山脊所在的点索引。

ridge_vertices整数列表列表,形状 (nridges, *)

形成每个 Voronoi 山脊的 Voronoi 顶点索引。

regions整数列表列表,形状 (nregions, *)

形成每个 Voronoi 区域的 Voronoi 顶点索引。-1 表示 Voronoi 图以外的顶点。当指定 qhull 选项“Qz”时,空子列表表示内部添加的无限远点 Voronoi 区域。

point_regionndarray 数组,形状(npoints)

每个输入点的 Voronoi 区域索引。如果未指定 qhull 选项“Qc”,则不与 Voronoi 区域关联的点的列表将包含 -1。如果指定 qhull 选项“Qz”,区域数将比元素少一个,因为为了便于计算,系统内部添加了一个无限远点。

furthest_site

如果这是最远点三角剖分,则为 True;否则为 False。

已添加到 1.4.0 版中。

方法

add_points(points[, restart])

处理一组新增点。

close()

完成增量处理。