Quando si costruiscono grafici multistrato, è necessario considerare il ggplot
pacchetto. L'idea è di creare un oggetto grafico con un'estetica di base e migliorarlo in modo incrementale.
ggplot
lo stile richiede il confezionamento dei dati data.frame
.
# Data generation
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x,1,1)
df <- data.frame(x,y1,y2)
Soluzione di base:
require(ggplot2)
ggplot(df, aes(x)) + # basic graphical object
geom_line(aes(y=y1), colour="red") + # first layer
geom_line(aes(y=y2), colour="green") # second layer
Qui + operator
è usato per aggiungere livelli extra all'oggetto base.
Con ggplot
te hai accesso all'oggetto grafico in ogni fase della stampa. Supponiamo che la normale configurazione dettagliata possa assomigliare a questa:
g <- ggplot(df, aes(x))
g <- g + geom_line(aes(y=y1), colour="red")
g <- g + geom_line(aes(y=y2), colour="green")
g
g
produce la trama e puoi vederla in ogni fase (beh, dopo la creazione di almeno un livello). Ulteriori incantesimi della trama sono fatti anche con l'oggetto creato. Ad esempio, possiamo aggiungere etichette per gli assi:
g <- g + ylab("Y") + xlab("X")
g
La finale g
è simile a:
AGGIORNAMENTO (2013-11-08):
Come sottolineato nei commenti, ggplot
la filosofia suggerisce di utilizzare i dati in formato lungo. Puoi fare riferimento a questa risposta per vedere il codice corrispondente.
?curve
. Usaadd=TRUE
.