Sie müssen der Ästhetik Attribute zuordnen (Farben innerhalb der aes-Anweisung), um eine Legende zu erstellen.
cols <- c("LINE1"="#f04546","LINE2"="#3591d1","BAR"="#62c76b")
ggplot(data=data,aes(x=a)) +
geom_bar(stat="identity", aes(y=h, fill = "BAR"),colour="#333333")+
geom_line(aes(y=b,group=1, colour="LINE1"),size=1.0) +
geom_point(aes(y=b, colour="LINE1"),size=3) +
geom_errorbar(aes(ymin=d, ymax=e, colour="LINE1"), width=0.1, size=.8) +
geom_line(aes(y=c,group=1,colour="LINE2"),size=1.0) +
geom_point(aes(y=c,colour="LINE2"),size=3) +
geom_errorbar(aes(ymin=f, ymax=g,colour="LINE2"), width=0.1, size=.8) +
scale_colour_manual(name="Error Bars",values=cols) + scale_fill_manual(name="Bar",values=cols) +
ylab("Symptom severity") + xlab("PHQ-9 symptoms") +
ylim(0,1.6) +
theme_bw() +
theme(axis.title.x = element_text(size = 15, vjust=-.2)) +
theme(axis.title.y = element_text(size = 15, vjust=0.3))
Ich verstehe, woher Roland kommt, aber da dies nur drei Attribute sind und Komplikationen durch Überlagerung von Balken und Fehlerbalken entstehen, kann es sinnvoll sein, die Daten so wie sie sind im Breitformat zu belassen. Durch die Verwendung von geom_pointrange kann die Komplexität geringfügig reduziert werden .
Fügen Sie der Plotspezifikation hinzu, um die Hintergrundfarbe für die Fehlerbalkenlegende im Original zu ändern + theme(legend.key = element_rect(fill = "white",colour = "white"))
. Um verschiedene Legenden zusammenzuführen, benötigen Sie normalerweise eine konsistente Zuordnung für alle Elemente, aber für mich wird derzeit ein Artefakt mit schwarzem Hintergrund erstellt. Ich dachte, ich guide = guide_legend(fill = NULL,colour = NULL)
würde den Hintergrund für die Legende auf null setzen, aber das tat es nicht. Vielleicht eine andere Frage wert.
ggplot(data=data,aes(x=a)) +
geom_bar(stat="identity", aes(y=h,fill = "BAR", colour="BAR"))+
geom_line(aes(y=b,group=1, colour="LINE1"),size=1.0) +
geom_point(aes(y=b, colour="LINE1", fill="LINE1"),size=3) +
geom_errorbar(aes(ymin=d, ymax=e, colour="LINE1"), width=0.1, size=.8) +
geom_line(aes(y=c,group=1,colour="LINE2"),size=1.0) +
geom_point(aes(y=c,colour="LINE2", fill="LINE2"),size=3) +
geom_errorbar(aes(ymin=f, ymax=g,colour="LINE2"), width=0.1, size=.8) +
scale_colour_manual(name="Error Bars",values=cols, guide = guide_legend(fill = NULL,colour = NULL)) +
scale_fill_manual(name="Bar",values=cols, guide="none") +
ylab("Symptom severity") + xlab("PHQ-9 symptoms") +
ylim(0,1.6) +
theme_bw() +
theme(axis.title.x = element_text(size = 15, vjust=-.2)) +
theme(axis.title.y = element_text(size = 15, vjust=0.3))
Um den schwarzen Hintergrund in der Legende zu entfernen, müssen Sie das override.aes
Argument für das verwenden guide_legend
. Damit können Sie einen bestimmten Aspekt der Legende angeben, der möglicherweise nicht richtig zugewiesen wurde.
ggplot(data=data,aes(x=a)) +
geom_bar(stat="identity", aes(y=h,fill = "BAR", colour="BAR"))+
geom_line(aes(y=b,group=1, colour="LINE1"),size=1.0) +
geom_point(aes(y=b, colour="LINE1", fill="LINE1"),size=3) +
geom_errorbar(aes(ymin=d, ymax=e, colour="LINE1"), width=0.1, size=.8) +
geom_line(aes(y=c,group=1,colour="LINE2"),size=1.0) +
geom_point(aes(y=c,colour="LINE2", fill="LINE2"),size=3) +
geom_errorbar(aes(ymin=f, ymax=g,colour="LINE2"), width=0.1, size=.8) +
scale_colour_manual(name="Error Bars",values=cols,
guide = guide_legend(override.aes=aes(fill=NA))) +
scale_fill_manual(name="Bar",values=cols, guide="none") +
ylab("Symptom severity") + xlab("PHQ-9 symptoms") +
ylim(0,1.6) +
theme_bw() +
theme(axis.title.x = element_text(size = 15, vjust=-.2)) +
theme(axis.title.y = element_text(size = 15, vjust=0.3))