Ich habe eine R-Funktion, die 95% Vertrauensellipsen für Streudiagramme erzeugt. Die Ausgabe sieht wie folgt aus, für jede Ellipse einen Standardwert von 50 Punkten (50 Zeilen):Wie kann eine Datenellipse einem ggplot2-Streudiagramm überlagert werden?
[,1] [,2]
[1,] 0.097733810 0.044957994
[2,] 0.084433494 0.050337990
[3,] 0.069746783 0.054891438
Ich mag würde eine Reihe solcher Ellipsen für jede Ebene eines Faktors ‚Standort‘ auf einem ggplot2
aufgerufen superimpose Scatterplot, von diesem Befehl erzeugt:
> plat1 <- ggplot(mapping=aes(shape=site, size=geom), shape=factor(site)); plat1 + geom_point(aes(x=PC1.1,y=PC2.1))
dieses auf einem Datensatz ausgeführt wird, genannt dflat
, die wie folgt aussieht:
site geom PC1.1 PC2.1 PC3.1 PC1.2 PC2.2
1 Buhlen 1259.5649 -0.0387975838 -0.022889782 0.01355317 0.008705276 0.02441577
2 Buhlen 653.6607 -0.0009398704 -0.013076251 0.02898955 -0.001345149 0.03133990
Das Ergebnis ist in Ordnung, aber wenn ich versuche, die Ellipse hinzufügen (lassen Sie uns für diese eine Seite sagen, genannt „Buhlen“):
> plat1 + geom_point(aes(x=PC1.1,y=PC2.1)) + geom_path(data=subset(dflat, site="Buhlen"),mapping=aes(x=ELLI(PC1.1,PC2.1)[,1],y=ELLI(PC1.1,PC2.1)[,2]))
ich eine Fehlermeldung erhalten: "Error in data.frame(x = c(0.0977338099339815, 0.0844334944904515, 0.0697467834016782, : arguments imply differing number of rows: 50, 211
Ich habe es geschafft, dieses Problem zu beheben in die Vergangenheit, aber ich kann mich nicht erinnern, wie. Es scheint, dass sich geom_path auf die gleichen Punkte verlässt, anstatt neue zu zeichnen. Jede Hilfe wäre willkommen.
Did erstellen Sie versuchen, den Standardwert von 50 Punkten auf 211 zu ändern? Funktioniert es? Möglicherweise müssen Sie Ihrer Funktion ein weiteres Argument hinzufügen (die Anzahl der Punkte) –
Hallo, danke für die schnelle Antwort. Die Funktion kann die Anzahl der Punkte ändern, und ich habe es mit 211 Punkten versucht. Es erzeugt einen seltsamen, sehr dicken Kreis. Ich denke, es ist nicht Teil der Daten zuallererst, und es sollte in der Lage sein, es mit 50 Punkten zu plotten - zumindest aus der Dokumentation, können Sie verschiedene Datensätze auf der gleichen Handlung verwenden, so natürlich, unterschiedliche Anzahlen von Punkten sein sollte ok auch. – radu
wird es für uns viel einfacher, wenn Sie ein minimal reproduzierbares Beispiel liefern. – xiechao