2016-08-23 6 views
-1

Ich habe Daten mit drei Variablen und ich versuche jetzt zwei von ihnen zu plotten ggplot2 verwenden.Plotten Fehler mit ggplot2

library(ggplot2) 
x=1:50 
y=x^2 
z=rep(c("p","sp","n","sn","nt"),each=10) 
mydata=as.data.frame(cbind(x,y,z)) 
ggplot(mydata, aes(x=x, y=y)) + geom_point() 

Nach den Daten sollte das Diagramm eine Kurve sein. Wenn ich den Code ausführe, erhalte ich die folgende Zahl, die keinen Sinn ergibt. Gibt es einen Fehler im Code? Danke vielmals.

Antwort

1

Wenn Sie eine Matrix mit cbind erstellen, wird der häufigste Typ verwendet, in diesem Fall character. Wenn Sie as.data.frame.matrix rufen erstellen Es wird standardmäßig factors Sie diese ungewöhnliche Ordnung auf den steigenden Pegel der factor Basis zu geben. Die korrekte Funktion zu verwenden ist data.frame mit mehreren Argumenten der Spalten Ihrer Daten.

library(ggplot2) 
x=1:50 
y=x^2 
z=rep(c("p","sp","n","sn","nt"),each=10) 
mydata= data.frame(x,y,z) 
ggplot(mydata, aes(x=x, y=y)) + geom_line() 

Werfen Sie einen Blick auf str(data.frame(x,y,z)) statt str(as.data.frame(cbind(x,y,z)) und notieren Sie den Zwang von Integer- und numerischen Modi Faktor.

+0

Vielen Dank. Sie haben Recht, 'as.data.frame' mit' cbind' konvertiert die Daten in factor. Danke für Ihre Hilfe. –