Come posso usare tavolozze di colori diversi per strati diversi in ggplot2?
Domanda
È possibile tracciare due serie di dati sulla stessa trama, ma utilizzare tavolozze di colori diverse per ogni set?
testdf <- data.frame( x = rnorm(100),
y1 = rnorm(100, mean = 0, sd = 1),
y2 = rnorm(100, mean = 10, sd = 1),
yc = rnorm(100, mean = 0, sd = 3))
ggplot(testdf, aes(x, y1, colour = yc)) + geom_point() +
geom_point(aes(y = y2))
Quello che vorrei vedere è un insieme di dati, diciamo y1
, in blues (colore impostato da yc
) e l'altro set in rossi (di nuovo set da by yc
).
La leggenda dovrebbe quindi mostrare 2 scale a colori, una in blu, l'altra rossa.
Grazie per i vostri suggerimenti.
Soluzione
Se traduci il "blu" e "Reds" in variabile trasparenza, allora non è contro la filosofia di GGPlot. Quindi, usando Thierry's Molten
Versione del set di dati:
ggplot(Molten, aes(x, value, colour = variable, alpha = yc)) + geom_point()
Dovrebbe fare il trucco.
Altri suggerimenti
Questo non è possibile con GGPlot2. Penso che contro la filosofia di GGPlot2 perché complica l'interpresa della trama.
Un'altra opzione è quella di utilizzare forme diverse per separare i punti.
testdf <- data.frame( x = rnorm(100),
y1 = rnorm(100, mean = 0, sd = 1),
y2 = rnorm(100, mean = 10, sd = 1),
yc = rnorm(100, mean = 0, sd = 3))
Molten <- melt(testdf, id.vars = c("x", "yc"))
ggplot(Molten, aes(x, value, colour = yc, shape = variable)) + geom_point()