2011-07-04 2 views
-1

J'ai besoin de tracer des courbes multiples dans un graphe simple dans R, par exemple (a, b) et (a, c) dans le même graphe, où a, b et c sont des vecteurs de données. Quelqu'un sait-il comment faire ça? Merci.Tracer des courbes multivues dans R

cheng

Répondre

3

Vous pouvez le faire en utilisant les commandes plot et lines:

x <- 1:10 
y1 <- 1:10 
y2 <- 0.5 * y1 

#Set up the plot 
plot(range(x),range(c(y1,y2)),type="n") 
#Create the lines 
lines(x,y1) 
lines(x,y2) 
2

@ suggestion de Joran est un bon. Une autre option est d'utiliser matplot après cbinding les y -values ​​(travail sur l'exemple de @ Joran):

matplot(x, cbind(y1, y2)) 

Ceci a l'avantage de ne pas avoir à trouver des gammes et vous même.

Vérifiez ?matplot pour beaucoup d'options.

2

Si b et c sont des colonnes matricielles, matplot (et matlines pour ajouter d'autres lignes) peut être utilisé aussi:

a <- 1 : 10 
bc <- matrix (c (a, a/2), ncol = 2) 

matplot (a, bc, type = "l") 
2

ggplot2 supporte facilement ce par des colonnes de mappage dans un data.frame à l'esthétique. Je trouve qu'il est plus facile d'utiliser melt de reshape (2) pour générer des données dans le format approprié pour ces tâches. ggplot gère la définition des couleurs, la définition d'une légende appropriée et de nombreux autres détails qui compliquent parfois le tracé. Par exemple:

library(ggplot2) 
dat <- melt(data.frame(x = x, y1 = y1, y2 = y2), id.vars = "x") 
ggplot(dat, aes(x, value, colour = variable)) + geom_line() 
Questions connexes