我正在尝试着色使用创建的Voronoi图scipy.spatial.Voronoi
.这是我的代码:
import numpy as np import matplotlib.pyplot as plt from scipy.spatial import Voronoi, voronoi_plot_2d # make up data points points = np.random.rand(15,2) # compute Voronoi tesselation vor = Voronoi(points) # plot voronoi_plot_2d(vor) # colorize for region in vor.regions: if not -1 in region: polygon = [vor.vertices[i] for i in region] plt.fill(*zip(*polygon)) plt.show()
结果图像:
正如您所看到的,图像边界处的一些Voronoi区域没有着色.这是因为这些区域的Voronoi顶点的一些索引被设置为-1
,即,对于Voronoi图之外的那些顶点.根据文件:
区域:(整数列表,形状(nregions,*))形成每个Voronoi区域的Voronoi顶点的索引.-1表示Voronoi图外的顶点.
为了使这些区域着色,我试图从多边形中删除这些"外部"顶点,但这不起作用.我想,我需要在图像区域的边界填写一些点,但我似乎无法弄清楚如何合理地实现这一点.
有人可以帮忙吗?