Раскрасить диаграмму Вороного
я пытаюсь раскрасить диаграмму Вороного, созданную с помощью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()
Полученное изображение:
Как вы можете видеть, некоторые из областей Вороного на границе изображения не окрашены. Это связано с тем, что некоторые индексы для вершин Вороного для этих областей установлены на-1
т. е. для этих вершин вне диаграммы Вороного. Согласно документам:
регионы: (список списка целых, форма (nregions, *)) Индексы вершин Вороного, образующих каждую область Вороного.-1 указывает вершину за пределами диаграммы Вороного.
Для того, чтобы раскрасить эти регионы, яЯ пытался просто удалить это "вне" вершины из многоугольника, но это нет работа. Я думаю, мне нужно заполнить некоторые точки на границе области изображения, но я могуКажется, я не могу понять, как этого добиться.
Кто-нибудь может помочь?