Ich versuche, zwei separate Legenden für zwei Datenreihen zu haben. Grundsätzlich habe ich eine Datenreihe und Regressionslinien, und ich möchte eine Legende mit den Regressionsdaten, vorzugsweise mit dem adrr2 berichtet, und eine andere Legende mit den Punkten aus dem Datensatz. Ich bin neu bei ggplot2 und konnte keine Guides (guide_legend) herausfinden.Hinzufügen einer zweiten Legende zu einem ggplot2-Graphen - Datenpunkte und Regressionslinien
Hier ist mein Code. Ich habe es geschafft, nur die Punkte zu bekommen, die auf der Legende angezeigt werden, deshalb möchte ich einen zweiten für die gestrichelten Regressionslinien erstellen. Ich habe eine Spalte für die angepassten r2-Werte, die ich für die 2. Legende aufrufen möchte.
g <- ggplot(acci_bud, aes(x = Elevation, y = DOY, color = Year)) +
geom_errorbar(aes(ymin = DOY -se, ymax = DOY +se), width = .1, show.legend = F)
g <- g + geom_point()
g <- g + geom_abline(data = acci_elev_slope, aes(slope = slope_coeff,
intercept = slope_int, color = year),linetype = 'dashed', show.legend = F)
kann ich dieses Grundstück mit dem Basispaket machen, aber ich möchte in der Lage sein, ein einfaches Skript zu haben, die ich für mehrere Datensätze verwenden und ich denke, ggplot2 dazu förderlicher ist.
EDIT: sollte reproduzierbar sein:
acci_bud <- data.frame( Elevation = rep((seq(from = 500, to = 1250, by = 50)),7),
DOY = sample(75:180, 112, replace = TRUE),
Year = rep(2009:2015, each = 16),
se = 2)
acci_elev_slope <- data.frame (year = seq(from = 2009, to = 2015, by = 1),
slope_coeff = c(0.05, 0.03, 0.051, 0.030, 0.025, 0.025, 0.034),
slope_int = c(75.76, 79.52, 81.80, 92.71, 75.76, 72.07, 90.6),
adjr2 = c(0.87, 0.79, 0.65, 0.89, 0.20, 0.57, 0.90))
acci_bud$Year <- as.factor(acci_bud$Year)
acci_elev_slope$year <- as.factor(acci_elev_slope$year)
g <- ggplot(acci_bud, aes(x = Elevation, y = DOY, color = Year)) +
geom_errorbar(aes(ymin = DOY -se, ymax = DOY +se), width = 0.1, show.legend = F)
g <- g + geom_point()
g <- g + geom_abline(data = acci_elev_slope,
aes(slope = slope_coeff, intercept = slope_int, color = year),
linetype = 'dashed', show.legend = F)
g
Geben Sie ein reproduzierbares Beispiel mit einigen eingebauten Datensätzen an. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-beispiel – Koundy