Plotten ordiellipse Funktion aus vegan-Paket auf NMDS-plot erstellt, in ggplot2
Statt des normalen plot-Funktion bin ich mit ggplot2
zu erstellen NMDS-plots. Ich möchte zur Anzeige von Gruppen in der NMDS-plot mit der Funktion ordiellipse()
von der vegan
Paket.
Beispiel Daten:
library(vegan)
library(ggplot2)
data(dune)
# calculate distance for NMDS
sol <- metaMDS(dune)
# Create meta data for grouping
MyMeta = data.frame(
sites = c(2,13,4,16,6,1,8,5,17,15,10,11,9,18,3,20,14,19,12,7),
amt = c("hi", "hi", "hi", "md", "lo", "hi", "hi", "lo", "md", "md", "lo",
"lo", "hi", "lo", "hi", "md", "md", "lo", "hi", "lo"),
row.names = "sites")
# plot NMDS using basic plot function and color points by "amt" from MyMeta
plot(sol$points, col = MyMeta$amt)
# draw dispersion ellipses around data points
ordiellipse(sol, MyMeta$amt, display = "sites", kind = "sd", label = T)
# same in ggplot2
NMDS = data.frame(MDS1 = sol$points[,1], MDS2 = sol$points[,2])
ggplot(data = NMDS, aes(MDS1, MDS2)) +
geom_point(aes(data = MyMeta, color = MyMeta$amt))
Wie kann ich ordiellipse der NMDS-plot erstellt mit ggplot2
?
Didzis Elferts " Antwort unten funktioniert Super. Danke!!! Allerdings bin ich jetzt daran interessiert, das die folgenden ordiellipse der NMDS-plot erstellt mit ggplot2
:
ordiellipse(sol, MyMeta$amt, display = "sites", kind = "se", conf = 0.95, label = T)
Leider, ich verstehe nicht, genug über wie die veganCovEllipse
- Funktion arbeiten zu können, passen Sie das Skript selber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst, ich hinzugefügte Spalte Gruppe zu Ihrer NMDS-Daten-frame.
Zweiten Daten-frame enthält, bedeuten, MDS1 und MDS2-Werte für jede Gruppe und es wird verwendet, um zu zeigen Gruppennamen auf dem Grundstück
Daten-frame
df_ell
Werte enthält, um zu zeigen, Ellipsen. Es wird berechnet mit der FunktionveganCovEllipse
was verborgen invegan
Paket. Diese Funktion wird angewendet, um jede Ebene der NMDS (Gruppe), und er nutzt auch die Funktioncov.wt
zu berechnen-Kovarianz-matrix.Nun Ellipsen gezeichnet werden, wird mit der Funktion
geom_path()
undannotate()
verwendet, um den plot Gruppennamen.Idee für die ellipse Plotten angenommen wurde aus anderen stackoverflow Frage.
UPDATE - Lösung, die funktioniert in beiden Fällen
Zunächst in den NMDS-Daten-frame mit Spalte Gruppe.
Anschließend speichern Sie das Ergebnis der Funktion
ordiellipse()
als ein Objekt.Daten-frame
df_ell
Werte enthält, um zu zeigen, Ellipsen. Es wird erneut berechnet mit der FunktionveganCovEllipse
was verborgen invegan
Paket. Diese Funktion wird angewendet, um jede Ebene der NMDS (Gruppe) und jetzt verwendet er Argumente gespeichert inord
Objekt -cov
,center
undscale
jeder Ebene.Zeichnen auf die gleiche Weise erfolgt wie im vorherigen Beispiel. Für die Berechnung der Koordinaten für das Ellipsen-Objekt von
ordiellipse()
verwendet wird, diese Lösung wird die Arbeit mit verschiedenen Parametern, die Sie für diese Funktion.