0
我正在嘗試聚簇數組中的3D數據。它實際上是來自3D圖像的信息,因此此數組表示具有x,y,z值的單個圖像。我想知道什麼樣的體素傾向於聚集在一起。數組看起來像這樣。R中的聚類3D數組
dim(x)
[1] 34 34 34 1
我該怎麼辦?我試圖用scatterplot3d繪圖,但它沒有奏效。
我正在嘗試聚簇數組中的3D數據。它實際上是來自3D圖像的信息,因此此數組表示具有x,y,z值的單個圖像。我想知道什麼樣的體素傾向於聚集在一起。數組看起來像這樣。R中的聚類3D數組
dim(x)
[1] 34 34 34 1
我該怎麼辦?我試圖用scatterplot3d繪圖,但它沒有奏效。
所以這是一個嘗試羣集。如果你想得到更好的答案,你應該提供數據。
library(reshape2) # for melt(...)
library(rgl) # for plot3d(...)
set.seed(1) # to create reproducible sample
# 3D matrix, values clustered around -2 and +2
m <- c(rnorm(500,-2),rnorm(500,+2))
dim(m) <- c(10,10,10)
v <- melt(m, varnames=c("x","y","z")) # 4 columns: x, y, z, value
# interactive 3D plot, coloring based on value
plot3d(v$x,v$y,v$z, col=1+round(v$value-min(v$value)),size=5)
# identify clusters
v <- scale(v) # need to scale or clustering will fail
v <- data.frame(v) # need data frame for later
d <- dist(v) # distance matrix
km <- kmeans(d,centers=2) # kmeans clustering, 2 clusters
v$clust <- km$cluster # identify clusters
# plot the clusters
plot(z[1:4],col=v$clust) # scatterplot matrix
plot3d(v$x,v$y,v$z, col=v$clust,size=5) # 3D plot, colors based in cluster
主要想法是重塑你的3D矩陣爲「長」的格式,列x,y,z和實際的矩陣值。所以現在x,y和z包含位置信息(這裏是索引值1:10)。您需要對其進行縮放,以便value
列和索引列的大小相同,否則集羣會給您帶來誤導性的結果。
那你試試?告訴我們你的代碼。 –
這不起作用(不是這個集羣):scatterplot3d(x [,,, 1])和dist(x [,,, 1])沒有完成。 – user3141121
您的矩陣似乎有4個維度(34,34,34,1)。最後維度的含義是什麼? – jlhoward