In ggplot2 funktionieren coord_flip und freie Skalen nicht zusammen
Hier sind einige Beispieldaten für eine hypothetische Metaanalyse zur Wirksamkeit von Sportförderungsmaßnahmen, für die ich ein Waldstück erstellen möchte:
example.df = data.frame(Author = c("McAuliffe et al.", "Palen et al.", "Manning et al.", "Richters et al.", "Grello et al.","Mpofu et al.", "Kuo & St Lawrence", "Langstrom & Hanson", "Ompad et al.", "Abdullah et al.","Yan", "Peltzer & Pengpid", "Lo & Wei", "Haggstrom-Nordin et al.", "Mwaba & Naidoo", "Hughes et al.","Lydie et al.", "Zimmer-Gembeck et al.", "Babalola", "Garos et al.", "Pinkerton et al."),
Sport = c("Basketball", "Basketball", "Baseball", "Dance", "Baseball", "Dance", "Wrestling","Wrestling", "Dance", "Baseball", "Wrestling", "Dance", "Swimming", "Swimming","Basketball", "Basketball", "Basketball", "Basketball", "Basketball", "Swimming", "Wrestling"),
Gender = c("Male", "Female", "Male", "Male", "Female", "Male", "Male", "Male", "Male", "Female","Female", "Male", "Female", "Female", "Female", "Male", "Female", "Female", "Female", "Male", "Female"),
d = c(-0.12, 0.53, 0.11, 0.02, 0.32, 0.04, 0.03,0.04,0.26, 0.76, 1.11, 0.34, 0.77, 1.19, 0.59, 0.15, 0.30, 0.81, 0.12, 0.11, 1.01),
d_SE = c(.10, .04, .06, .01, .11, .08, .08, .04, .05, .05, .14, .07, .05, .08, .19, .16, .07, .16, .06, .18, .15))
Der Datenrahmen enthält die Namen der Autoren, die Sportart, ob die Stichprobe männlich oder weiblich war, die Effektgröße für den Eingriff und den Standardfehler der Effektgröße. Ich hoffe, ein Punktdiagramm zu erstellen, das die Form des Geschlechts und die Facetten des jeweiligen Sports abbildet. Nach folgenden Beispielen in Changs "Kochbuch" unddiese verwandte AbfrageIch habe den folgenden Code gefunden, der die meisten meiner Formatierungsanforderungen erfüllt:
p<-ggplot(example.df, aes(x=Author, y=d, ymin=d-1.96*d_SE, ymax=d+1.96*d_SE,shape=Gender))+
geom_pointrange() +
coord_flip()+
scale_y_continuous(limits=c(-2,2),breaks=c(-2,-1.5,-1,-0.5,0,.5,1,1.5,2))+
geom_hline(yintercept=0, color="grey60",linetype="dashed")+
theme_bw()+
theme(panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank(),panel.grid.major.y=element_line(color="grey60",linetype="dashed"))+
facet_grid(Sport ~ ., scales="free_y")
p
Mein Problem ist jedoch, dass in den resultierenden Diagrammen für jede Facette (unten) jeder Autor im gesamten Datenrahmen auf der y-Achse dargestellt ist (technisch gesehen x-Achse, aber die Achsen sind gespiegelt). Stattdessen möchte ich nur, dass die Autoren mit Daten, die für eine bestimmte Facette relevant sind, auf der mit dem Autor verknüpften Achse dieser Facette dargestellt werden. Daher sollte jede Facette eine andere Liste von Autoren auf der Achse haben.
Ich hatte das gedachtscales="free_y"
Bestandteil derfacet_grid
Ebene würde eine eindeutige Autorenachse für jede Facette sicherstellen (ich habe es auch versucht)scales="free_x"
(bei den umgekehrten Achsen), aber dies hat nicht den beabsichtigten Effekt.
Kennt jemand eine Möglichkeit, mit der ich sicherstellen kann, dass auf der Achse jeder Facette nur die Namen der Autoren mit den zugehörigen Daten für diese Facette angezeigt werden?