2017-11-09 4 views
-1

Ich versuche, ein gekacheltes Plot mit plot.kmeans Funktionen aus dem Paket "nützlich" zu erstellen. Dies kann sehr einfach für die Basis-Plotfunktion mit par() oder layout() oder in ggplot mit Facetten durchgeführt werden. Ich möchte Ergebnisse verschiedener Läufe von Kmeans mit unterschiedlicher Anzahl von Clustern mit Hilfe von plot oder plot.kmeans Funktion aus dem Paket "nützlich" visualisieren. Ich habe par() und layout() ausprobiert, aber ich bekomme nur einen Plot, nicht mehrere Plots. Betrachten Sie das folgende Codesegment:Tiled Plot mit plot.kmeans Funktion

results1 <- kmeans(x=dataset1,centers=5,nstart = 25) 
results2 <- kmeans(x=dataset2,centers=5,nstart = 25) 
par(mfrow=c(2,1)) 
plot.kmeans(results1,dataset1) 
plot.kmeans(results2,dataset2) 

Ich habe zwei Datensätze und gelten KMeans auf sie getrennt. Ich möchte Ergebnisse beider Datensätze nebeneinander zeichnen. plot.kmeans ist eine gute Funktion, um Ergebnisse von Clustering zu sehen. Aber irgendwie habe ich das Gefühl, dass wir nicht zwei oder mehr Parzellen nebeneinander haben können, so wie wir es bei der Basisplotting-Einrichtung tun. Wenn ich anstelle von plot.kmeans Basisfunktionen verwende, funktioniert es. Also das ist mein Problem in Kürze. Danke.

+2

Könnten Sie ein [reproduzierbares Beispiel] (https://stackoverflow.com/questions/5963269/how-to-make-a- groß-r-reproduzierbar-Beispiel)? – csgroen

+0

Ich habe Code in Frage gestellt, bitte schauen Sie nochmal. – Aftab

Antwort

0

Die Funktion aus dem Paket "nützlich" (nicht zu verwechseln mit dem allgemeinen Qualifier 'ein nützliches Paket) gibt ein ggplot2-Objekt zurück. Diese tun nicht arbeiten mit par() oder layout().

Blick stattdessen auf grid.arrange aus dem "gridExtra" -Paket:

results1 <- kmeans(x=dataset1,centers=5,nstart = 25) 
results2 <- kmeans(x=dataset2,centers=5,nstart = 25) 
library(gridExtra) 
p1 <- plot.kmeans(results1,dataset1) 
p2 <- plot.kmeans(results2,dataset2) 
grid.arrange(p1, p2, ncol=2) 
+0

Danke @MrGumble es löste mein Problem. – Aftab