È possibile avere due legende con ggplot2 ma basate su set di dati diversi? Ad esempio, nel codice qui sotto vorrei ottenere sia la leggenda della prima situazione che la leggenda della seconda situazione nella stessa immagine. Il mio tentativo (terza situazione) non funziona.due legende basate su dataset diversi con ggplot2
library(ggplot2)
library(scales)
yrng <- range(economics$unemploy)
xrng <- range(economics$date)
presidential <- presidential[-(1:3), ]
# add a fictive factor to the economics dataset
economics <- cbind.data.frame(economics, col=gl(2, nrow(economics)/2))
#####################
## first situation ##
#####################
# first plot with legend
unemp <- qplot(date, unemploy, data=economics, geom="line",
xlab = "", ylab = "No. unemployed (1000s)", colour=col)
# second plot without legend
unemp + geom_vline(aes(xintercept = start), data = presidential)
######################
## second situation ##
######################
# first plot without legend
unemp <- qplot(date, unemploy, data=economics, geom="line",
xlab = "", ylab = "No. unemployed (1000s)")
# second plot with legend
unemp +
geom_rect(aes(NULL, NULL, xmin = start, xmax = end,
fill = party), ymin = yrng[1], ymax = yrng[2],
data = presidential) +
scale_fill_manual(values = alpha(c("blue", "red"), 0.2))
#####################
## third situation ##
#####################
# first plot with legend
unemp <- qplot(date, unemploy, data=economics, geom="line",
xlab = "", ylab = "No. unemployed (1000s)", colour=col)
# second plot with legend
unemp +
geom_rect(aes(NULL, NULL, xmin = start, xmax = end, fill = party), ymin = yrng[1],
ymax = yrng[2], data = presidential) +
scale_fill_manual(values = alpha(c("blue", "red"), 0.2))
Error in data.frame(xmin = 11342, xmax = 14264, fill = "Republican", colour = function (x, :
arguments imply differing number of rows: 1, 0
Il codice dovrebbe idealmente essere facile da tagliare e incollare in R. Come al momento hai '>' e '+' caratteri che non lo rendono possibile. Difficile vedere cosa stai facendo di conseguenza. –
@ mindless.panda Questo non è un problema: copia il codice e poi fai "Incolla solo i comandi" nella console R :-) –
Si presume che tutti utilizzino la console R standard. =) –