Koloruj diagram Voronoi
Próbuję ubarwić utworzony diagram Voronoiscipy.spatial.Voronoi
. Oto mój kod:
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()
Wynikowy obraz:
Jak widać niektóre regiony Voronoi na granicy obrazu nie są kolorowe. Jest tak, ponieważ niektóre indeksy wierzchołków Voronoi dla tych regionów są ustawione na-1
, tj. dla tych wierzchołków poza diagramem Voronoi. Zgodnie z dokumentami:
regiony: (lista list intów, kształtów (nregions, *)) Wskaźniki wierzchołków Voronoi tworzących każdy region Voronoi.-1 wskazuje wierzchołek poza diagramem Voronoi.
Aby kolorować te regiony, próbowałem usunąć te „zewnętrzne” wierzchołki z wielokąta, ale to nie zadziałało. Myślę, że muszę wypełnić kilka punktów na granicy regionu obrazu, ale nie mogę zrozumieć, jak to osiągnąć.
Czy ktoś może pomóc?