Fehler: ggplot2 nicht wissen, wie man mit Daten der Klasse matrix?

Wie kann ich ggplot Arbeit mit diesen Daten habe ich versucht normal Plotten und es funktioniert Prima, aber ich möchte eine bessere Visualisierung verwenden, wenn ich ggplot, es gibt mir den oben genannten Fehler, Wie kann ich dieses Problem beheben ?

Dies ist eine Implementierung von spectral clustering-Algorithmus. und der code funktioniert gut, und die Daten werden korrekt klassifiziert. Ich brauche nur um zu zeigen das jetzt .

library(ggplot2)

input_data <- as.matrix(read.table("SpectData.txt"))
colnames(input_data) <- c("x1", "x2")

#1- Define Weights matrix
W <- matrix(0,nrow = nrow(input_data),ncol = nrow(input_data))

#2- Define Degree Matrix
D <- matrix(0,nrow = nrow(input_data),ncol = nrow(input_data))

calculateWeight <- function(x1,x2,sigma) {
  result <- exp(- (norm(x2-x1,type = "2"))^2/ (2*sigma^2))
  result
}

calcWieghtMatrix <- function(sigma) {
  for(i in 1: nrow(W)){
   for(j in 1: nrow(W)){
    if(i == j){
      next
    }
    if( W[i,j] != 0){
      next
    }

    W[i,j] <<- calculateWeight(input_data[i,],input_data[j,],sigma)
    W[j,i] <<- W[i,j]
  }
 }
}    

calcDegreeMatrix <- function()  {
  for( i in 1:nrow(input_data)){
    D[i,i] <<- sum(W[i,])
  }
}

executeSpectralClustring <- function (sigma,numberOfClusters){
  calcWieghtMatrix(sigma)
  calcDegreeMatrix()
  L <<- D - W
  eigenDecompostion <- eigen(L,symmetric = FALSE)
  index <- ncol(eigenDecompostion$vectors)-1
  eigenVector <- eigenDecompostion$vectors[,index] 
  cl <- kmeans(eigenVector,numberOfClusters)
  ggplot(input_data,col = cl$cluster)
}    

executeSpectralClustring(0.01,2)
  • konvertieren matrix zu data.frame
  • beim konvertieren der Eingangs-Daten, um einen Daten-frame, es gibt mir ein leeres Grundstück ! was mache ich falsch ?
  • Was genau hast du erwartet, es zu produzieren? du bist nicht wirklich sagen, plot, nichts. ggplot() akzeptiert einen Daten-frame (als Sandipan gesagt) und dann haben Sie so zu erzählen, wie die Zuordnung aestetics zu plot-Elemente wie die x-und y-Werte oder Farbe. col = cl$cluster ist nicht ggplot2-Stil. Sie können die Karte Farbe, um den Namen einer Spalte, ohne die $ obwohl. Aber wichtiger ist, dass Sie nie erklärt jede geometrie (z.B. Punkt -, Balken -, Linien, etc). Es gibt viele gute Dokumentationen gibt, zum Sie entlang zu helfen, obwohl!
  • Danke, ich fand die Antwort. es mein erstes Erlebnis mit plot und es war lustig. Vielen Dank für Eure Hilfe nochmal
  • es gibt durchaus ein paar Dinge, die falsch Aussehen in Ihrem code, aber ich) es ist nicht reproduzierbar (keine Daten); ii) es sollte ein minimal-Beispiel zur Veranschaulichung ein bestimmtes problem.
Schreibe einen Kommentar