Ich erstelle ein Diagramm in ggplot aus einem 2 x 2-Studiendesign und möchte 2 Farben und 2 Symbole verwenden, um meine 4 verschiedenen Behandlungskombinationen zu klassifizieren. Derzeit habe ich 2 Legenden, eine für die Farben und eine für die beiden Formen. Wie kann ich sie zu einer einzigen Legende kombinieren, sodass ich einen blauen Kreis, einen roten Kreis, ein blaues Dreieck und ein gelesenes Dreieck habe?
Daten:
state1 <- c(rep(c(rep("N", 7), rep("Y", 7)), 2))
year <- rep(c(2003:2009), 4)
group1 <- c(rep("C", 14), rep("E", 14))
group2 <- paste(state1, group1, sep = "")
beta <- c(0.16,0.15,0.08,0.08,0.18,0.48,0.14,0.19,0.00,0.00,0.04,0.08,0.27,0.03,0.11,0.12,0.09,0.09,0.10,0.19,0.16,0.00,0.11,0.07,0.08,0.09,0.19,0.10)
lcl <- c(0.13,0.12,0.05,0.05,0.12,0.35,0.06,0.13,0.00,0.00,0.01,0.04,0.20,0.00,0.09,0.09,0.06,0.06,0.07,0.15,0.11,0.00,0.07,0.03,0.05,0.06,0.15,0.06)
ucl <- c(0.20,0.20,0.13,0.14,0.27,0.61,0.28,0.27,0.00,1.00,0.16,0.16,0.36,0.82,0.14,0.15,0.13,0.13,0.15,0.23,0.21,0.00,0.15,0.14,0.12,0.12,0.23,0.16)
data <- data.frame(state1,year,group1,group2,beta,lcl,ucl)
Handlung:
library(ggplot2)
pd <- position_dodge(.65)
ggplot(data = data, aes(x = year, y = beta, colour = state1, group = group2, shape = group1)) +
geom_point(position = pd, size = 4) +
geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) +
scale_colour_hue(name = "Treatment & State", #Legend label, use darker colors
labels = c("Control", "Exclosure"),
l = 40) +
scale_shape(name = "State", labels = c("Non-F", "Flwr"))
y=estimate
Schätzung ist Beta?shape
sollte nichtgroup1
wahr?group2
erhält jede Gruppe ihre eigene Form / Farbe. dann wählen Sie die spezifischen aus, die Sie mit HandbuchAntworten:
Sie müssen identische Werte
name
undlabels
Werte für Form und Farbskala verwenden.pd <- position_dodge(.65) ggplot(data = data,aes(x= year, y = beta, colour = group2, shape = group2)) + geom_point(position = pd, size = 4) + geom_errorbar(aes(ymin = lcl, ymax = ucl), colour = "black", width = 0.5, position = pd) + scale_colour_manual(name = "Treatment & State", labels = c("Control, Non-F", "Control, Flwr", "Exclosure, Non-F", "Exclosure, Flwr"), values = c("blue", "red", "blue", "red")) + scale_shape_manual(name = "Treatment & State", labels = c("Control, Non-F", "Control, Flwr", "Exclosure, Non-F", "Exclosure, Flwr"), values = c(19, 19, 17, 17))
quelle
guides(fill = guide_legend(override.aes = list(fill = ...)))
wie in dieser Frage zu überschreiben : stackoverflow.com/questions/12488905/…Roter Kreis, blauer Kreis, rotes Dreieck, blaues Dreieck, wie Sie gefragt haben:
ggplot(data =data,aes(x= year, y = beta, shape=group2, colour=group2,group = group2)) + geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) + geom_point(position = pd, size = 4) + scale_colour_manual(values=c("red","blue","red","blue")) + scale_shape_manual(values=c(19,19,17,17)) + scale_fill_hue(name="Treatment & State", #Legend label, use darker colors labels=c("Control", "Exclosure"),l=40)
quelle