Voronoi#
- class scipy.spatial.Voronoi(points, furthest_site=False, incremental=False, qhull_options=None)#
N 维空间中的 Voronoi 图。
在版本 0.12.0 中添加。
- 参数:
- points浮点数 ndarray,形状 (npoints, ndim)
用于构建 Voronoi 图的点的坐标
- furthest_sitebool,可选
是否计算最远点 Voronoi 图。默认值:False
- incrementalbool,可选
允许增量添加新点。这会占用一些额外的资源。
- qhull_optionsstr,可选
传递给 Qhull 的其他选项。有关详细信息,请参阅 Qhull 手册。(默认值:ndim > 4 时为“Qbb Qc Qz Qx”,否则为“Qbb Qc Qz”。增量模式省略“Qz”。)
- 抛出:
- 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()
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)
- 属性:
- points双精度 ndarray,形状 (npoints, ndim)
输入点的坐标。
- vertices双精度 ndarray,形状 (nvertices, ndim)
Voronoi 顶点的坐标。
- ridge_points整数 ndarray,形状
(nridges, 2)
每个 Voronoi 脊所在的点之间的索引。
- ridge_vertices整数列表的列表,形状
(nridges, *)
形成每个 Voronoi 脊的 Voronoi 顶点的索引。
- regions整数列表的列表,形状
(nregions, *)
形成每个 Voronoi 区域的 Voronoi 顶点的索引。 -1 表示 Voronoi 图之外的顶点。当指定 qhull 选项“Qz”时,一个空的子列表表示内部添加的无穷远处的点的 Voronoi 区域。
- point_region整数数组,形状 (npoints)
每个输入点的 Voronoi 区域的索引。 如果未指定 qhull 选项“Qc”,则列表将为未与 Voronoi 区域关联的点包含 -1。 如果指定 qhull 选项“Qz”,则元素数量将比区域数量少一个,因为内部添加了一个额外的无穷远处的点以方便计算。
- furthest_site
如果这是最远点三角剖分,则为 True,否则为 False。
在版本 1.4.0 中添加。
方法
add_points
(points[, restart])处理一组额外的新点。
close
()完成增量处理。