Extrahieren von Daten aus einer ggplot
Ich habe ein Grundstück mit ggplot2
geom_histogram
von einem Daten-frame. Siehe Beispiel unten und link zu den ggplot Histogramm Müssen label jede geom_vline mit den Faktoren, die mit einer geschachtelten ddply Funktion und facet wrap
Ich jetzt brauchen, um einen Daten-frame, der enthält die zusammengefassten Daten verwendet, um generieren die ggplot oben.
Sector2 Family Year Length
BUN Acroporidae 2010 332.1300496
BUN Poritidae 2011 141.1467966
BUN Acroporidae 2012 127.479
BUN Acroporidae 2013 142.5940556
MUR Faviidae 2010 304.0405
MUR Faviidae 2011 423.152
MUR Pocilloporidae 2012 576.0295
MUR Poritidae 2013 123.8936667
NTH Faviidae 2010 60.494
NTH Faviidae 2011 27.427
NTH Pocilloporidae 2012 270.475
NTH Poritidae 2013 363.4635
- Was die zusammengefassten Daten? Können Sie das konkretisieren? Kannst du nicht einfach berechnen, selbst ohne
ggplot
? - Hallo David vielen Dank für die post. der ggplot-Skript finden Sie hier stackoverflow.com/questions/25350094/... fasst 27000 Zeilen von Daten. Der plot ist eine Zählung - (oder Frequenz) der Längen, die passen in eine binwidth. Die zusammengefassten Daten ist das, was ich war nach, und ich brauchte diese für die weitere multivariate Analysen in die Länge-Frequenz-Verteilung. @Didzis Lösung sollte erklären, was ich meine weiteren. Nochmals vielen Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um Werte tatsächlich gezeichnet, Sie können verwenden Funktion
ggplot_build()
where-argument ist Ihr Grundstück.Dadurch wird Liste und eine der Teillisten ist benannt
data
. Diese Teilliste enthält dataframe mit Werten, die in Handlung, zum Beispiel, für histrogramm es enthälty
Werte (die gleichen wiecount
). Wenn Sie Facetten dann SpaltePANEL
shows, in denen die facettenwerte verwendet werden. Wenn es mehr als eingeom_
in Ihrer Zeichnung dann Daten enthält dataframes für jeden - in meinem Beispiel gibt es einen dataframe für histogramm und ein weiteres für die vlines.df <- pg$data[[1]]
speichern Sie es als dataframe mit dem Namendf
Wenn Sie müssen einfach nur Daten-es scheint
layer_data
ist so konzipiert, das genau auf diese :Wird es geben Sie die Daten der ersten Schicht, wie
ggplot_build(p)$data[[1]]
.Seinen source-code ist in der Tat genau
function (plot, i = 1L) ggplot_build(plot)$data[[i]]
Während die anderen Antworten zu bekommen schließen Sie, wenn Sie auf der Suche für die eigentlichen Daten, die übergeben wurde, um
ggplot()
, die Sie verwenden können:ggplot_build(p)$plot$data
Erstellt am 2019-03-04 durch die reprex Paket (v0.2.1)
Während das ist nicht hilfreich für eine un-modifizierten Daten-frame, wenn Sie die Rohrleitungen durch eine Reihe von
mutate()
's odersummarize()
's, bevor Sie an die ggplot, dies kann nützlich sein, nach der Tat zeigen die Daten.