2017-09-14 73 views
0

我有一組(x,y)數據。在python繪製這只是給出enter image description here在Python中定義非線性限制線到數據集

我希望能夠以適合一些線或輪廓這一數據,限定內半徑和外半徑,這樣我可以然後隨機那些限度內選擇一個點。

但是,我不知道從哪裏開始。有任何想法嗎?

+0

您當前使用的代碼和正在使用的庫 – Dark

+0

如果您的數據是圓形或橢圓形,則可以使用[this](https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source =網頁及CD = 10&VED = 0ahUKEwigjI-sia7WAhXM5xoKHYj-Bm8QFghjMAk&URL = HTTP%3A%2F%2Fwww.stsci.edu%2F〜RAB%2FBackup%2520Oct%252022%25202011%2Ff_3_CalculationForWFIRSTML%2FGaertner%2520%26%2520Schoenherr.pdf&USG = AFQjCNFrKPRtr_5KBSnlCB90ikYmsZqtLw),用於外邊,也許是1/zz *技巧(見下面的回覆評論)。 – mikuszefski

回答

1

如果這是同心圓,我會計算平均的x和y座標(這將是中心),然後計算每個點與中心之間的距離。最大和最小距離將是內圈和外圈的半徑。 (如果你願意,你也可以選擇其他百分位數)。

如果那不是圓圈,而是更復雜的東西,你可以用convex hull作爲poligon近似外形,使用類似marching squares(或者對兩者都使用步進方塊)的innner。比你可以做point inside poligon test你選擇的點。

+0

也許,如果(0,0)在裏面,則可以將凸包裝入1/zz *變換的數據並轉換回來以獲得內部極限。 – mikuszefski

+0

@mikuszefski有趣。什麼是1/zz *轉換數據?因爲從我的大學我只記得我們可以從n + 1維空間中的相同點的凸包獲得n維空間中點的Delauney三角剖分,其中最後一個座標是所有其他座標平方的歐氏範數。但我沒有記住有關找到輪廓的轉換。 – Bunyk

+1

我只是想在單位圓上進行反射,從裏面翻出來。因爲它是二維數據,我會把z = x + i y,那麼(z z *)^( - 1)就是相應的反射。天氣與否這可能取決於OP的典型數據。 – mikuszefski