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.

È stato utile?

Soluzione

Se traduci il "blu" e "Reds" in variabile trasparenza, allora non è contro la filosofia di GGPlot. Quindi, usando Thierry's MoltenVersione 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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top