scipy.spatial.

Voronoi#

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

N 维的 Voronoi 图。

Added in version 0.12.0.

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

用于构建Voronoi图的点的坐标

furthest_sitebool, 可选

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

增量bool, 可选

允许逐步添加新点。这会占用一些额外资源。

qhull_optionsstr, 可选

传递给 Qhull 的额外选项。详情请参阅 Qhull 手册。(默认值:对于 ndim > 4 为 “Qbb Qc Qz Qx”,否则为 “Qbb Qc Qz”。增量模式省略 “Qz”。)

属性:
双精度 ndarray,形状为 (npoints, ndim)

输入点的坐标。

顶点双精度 ndarray,形状为 (nvertices, ndim)

Voronoi 顶点的坐标。

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

每个Voronoi脊线所位于的点之间的索引。

ridge_vertices : 由整数列表组成的列表,形状为 (nridges, *)整数列表的列表,形状

形成每个Voronoi边的Voronoi顶点的索引。

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

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

点区域整数数组,形状 (npoints)

每个输入点的Voronoi区域的索引。如果未指定qhull选项“Qc”,则列表将包含-1,表示这些点未与Voronoi区域关联。如果指定了qhull选项“Qz”,则元素数量将比区域数量少一个,因为在内部添加了一个位于无穷远的额外点以方便计算。

furthest_site

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

Added in version 1.4.0.

方法

add_points(points[, restart])

处理一组额外的新的要点。

close()

完成增量处理。

Raises:
QhullError

当 Qhull 遇到错误条件时引发,例如在未启用解决选项时的几何退化。

ValueError

如果输入的是一个不兼容的数组,则会引发此错误。

注释

Voronoi 图是使用 Qhull 库 计算的。

示例

一组点的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)