मैं 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 क्षेत्रों के कुछ देख सकते हैं रंग नहीं कर रहे हैं। ऐसा इसलिए है क्योंकि इन क्षेत्रों के लिए वोरोनोई के कुछ सूचकांक -1
पर सेट किए गए हैं, यानी वोरोनोई आरेख के बाहर उन शीर्षकों के लिए। डॉक्स के अनुसार:
क्षेत्रों: प्रत्येक Voronoi क्षेत्र बनाने Voronoi कोने का सूचकांक (ints, आकृति (nregions, *) की सूची की सूची)। -1 वोरोनोई आरेख के बाहर वर्टेक्स इंगित करता है।
आदेश के साथ-साथ इन क्षेत्रों colorize करने के लिए, मैं सिर्फ बहुभुज से इन "बाहर" कोने को दूर करने की कोशिश की है, लेकिन यह काम नहीं किया। मुझे लगता है, मुझे छवि क्षेत्र की सीमा पर कुछ बिंदुओं को भरने की जरूरत है, लेकिन मुझे लगता है कि यह उचित तरीके से कैसे प्राप्त किया जाए।
क्या कोई मदद कर सकता है?
शायद एक छोटी गलती हो, यह सुनिश्चित न करें कि यह numpy के नए संस्करण के साथ बदल गया है, लेकिन '.ptp()' को सबसे बड़ा और सबसे छोटा मान के बीच अंतर मिलता है, फिर '.max()' कुछ भी नहीं करता है। मुझे लगता है कि आप क्या चाहते हैं '.ptp (अक्ष = 0) .मैक्स()'। –
पता नहीं है कि कोई इसे पढ़ता है लेकिन रेखा का बिंदु क्या है: 'अगर v2 <0: v1, v2 = v2, v1' – Luca
कोई बात नहीं। अब जब मैं इसे ठीक से पढ़ता हूं, तो यह सुनिश्चित करता है कि परिमित वर्टेक्स हमेशा v2 है। – Luca