簡體   English   中英

連接最近的鄰居點

[英]Connect nearest neighbor point

我有30個數據點的xy坐標列表(圖中的綠色點),我想將它們連接在一起。

情節

我如何在R中做到這一點? 此刻,我通過dist()計算了每個點之間的距離矩陣,以獲得每個點的最近鄰居。 但是,這會導致30對邊...有時多個邊連接到同一點,這是我不想要的:(如何在R中解決此問題?

  cities_num=10
  cor.matrix=matrix(0,nrow=cities_num,ncol=2)
  for (r in 1:cities_num){
  cor.matrix[r,]=c(sample(1:500, 1),sample(1:500, 1))}
  par(mar=c(4,4,2,4))
  plot(cor.matrix,pch=4,xlab="X coordinate",ylab="Y coordinate")
  centroid.x=mean(cor.matrix[,1])
  centroid.y=mean(cor.matrix[,2])
  bead_num=cities_num+20
  t=seq(0,pi*2,length=bead_num) 
  coords=t(rbind( centroid.x+sin(t)*10, centroid.y+cos(t)*10))
  for (point in 1:bead_num){
    symbols(x=coords[,1][point],y=coords[,2][point],circles=0.5,
            inches = FALSE, add = TRUE)
  }

不知道什么是“符號點”,並且您的代碼中似乎有太多未定義的對象,因此我制作了自己的“點”集。 如果只是一個常規點,則使用polygon

 dat <- data.frame(s=sin(seq(pi,-pi,length=25)),
                    c=cos(seq(pi,-pi,length=25)) )
 png();
     plot(0,0, xlim=c(-1.5,1.5),ylim=c(-1.5,1.5) );
       with(dat, points(s,c));
       with(dat, polygon(s,c) ) 
 dev.off()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM