Anwenden eines ggplot-Funktion pro Gruppe mit dplyr und Titel festlegen pro Gruppe
Ich würde gerne erstellen Sie einen separaten plot pro Gruppe in einem Daten-frame und nehmen Sie die Gruppe in die Titel.
Mit den iris-Datensatz kann ich in base-R und ggplot dies
plots1 <- lapply(split(iris, iris$Species),
function(x)
ggplot(x, aes(x=Petal.Width, y=Petal.Length)) +
geom_point() +
ggtitle(x$Species[1]))
Gibt es ein äquivalent mit dplyr?
Hier ein Versuch, mithilfe von Facetten statt Titel.
p <- ggplot(data=iris, aes(x=Petal.Width, y=Petal.Length)) + geom_point()
plots2 = iris %>% group_by(Species) %>% do(plots = p %+% . + facet_wrap(~Species))
wo ich %+% zu ersetzen, die den dataset in p mit der Teilmenge, die für jeden Anruf.
oder (Arbeits-aber-Komplex) mit ggtitle
plots3 = iris %>%
group_by(Species) %>%
do(
plots = ggplot(data=.) +
geom_point(aes(x=Petal.Width, y=Petal.Length)) +
ggtitle(. %>% select(Species) %>% mutate(Species=as.character(Species)) %>% head(1) %>% as.character()))
Das problem ist, dass ich kann nicht scheinen, um die Titel pro Gruppe mit ggtitle in einer sehr einfachen Weise.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
.$Species
zu ziehen, die Arten von Daten inggtitle
:species[1]
zu geben Sie die Titel. Aber wenn Sie Ihre eigentliche plot ist einfach, das funktioniert sicherlich. IE--mein workflow ist oftplot.cust <- function(...); iris %>% group_by(Species) %>% plot.cust(...)
.$Species[1]
.first(.$Species)
Vom
dplyr 0.8.0
wir könnengroup_map
:Erstellt am 2019-02-18 durch die reprex Paket (v0.2.0).
Dies ist eine weitere option mit
rowwise
: