Plotten der Ordiellipse-Funktion aus einem veganen Paket auf einen in ggplot2 erstellten NMDS-Plot

Anstelle der normalen Plotfunktion verwende ichggplot2 NMDS-Diagramme erstellen. Ich möchte mit der Funktion Gruppen im NMDS-Plot anzeigenordiellipse() von demvegan Paket.

Beispieldaten:

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 dem mit erstellten NMDS-Plot Ordiellipse hinzufügen?ggplot2?

Die Antwort von Didzis Elferts unten funktioniert hervorragend. Vielen Dank! Jetzt bin ich jedoch daran interessiert, die folgende Ordiellipse für das mit erstellte NMDS-Diagramm zu zeichnenggplot2:

ordiellipse(sol, MyMeta$amt, display = "sites", kind = "se", conf = 0.95, label = T)

Leider verstehe ich nicht genug darüber, wie das gehtveganCovEllipse Funktion funktioniert, um das Skript selbst anpassen zu können.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage