2009-07-07 13 views
2

Je me demandais s'il était possible de représenter graphiquement trois lignes dans R en utilisant des fonctions. Par exemple, comment puis-je obtenir les fonctions:Fonctions de ligne dans R

3x+1 
4x+2 
x+1 

pour afficher le même graphique dans r?

Répondre

3

D'abord décider des limites, dire 0 à 100, et de faire une parcelle vide, y compris les points:

plot(c(0,100), c(0,100)) 

peut bien sûr avec des paramètres facultatifs tels que axes=, xlab=, ylab=, etc., pour contrôler divers détails des axes et titrage/étiquetage; puis, ajoutez chaque ligne avec abline(a, b) où b est la pente et est l'interception, donc, dans vos exemples:

abline(1, 3) 
abline(2, 4) 
abline(1, 1) 

Bien sûr, il y a beaucoup plus de détails que vous pouvez contrôler, tels que la couleur (col= paramètre optionnel), type de ligne (lty=) et la largeur (lwd=), etc, mais c'est l'essentiel de celui-ci.

+1

parcelle (c (0, 100), c (0, 100), type = 'n') est plus gentil. Le 'n' empêche toute sortie et affiche simplement un tracé vide (sinon vous obtenez deux points tracés à l'origine et (100,100)). Les commandes ablines suivantes afficheront ensuite les lignes. – ars

+0

Excellent point (;-), @ars! –

0

Voici une autre façon en utilisant matplot:

> x <- 0:10 
> matplot(cbind(x, x, x), cbind(3*x+1, 4*x+2, x+1), 
      type='l', xlab='x', ylab='y') 

matplot (X, Y, ...) prend deux arguments de la matrice. Chaque colonne de X est tracée contre chaque colonne de Y.

Dans notre cas, X est une matrice 11 x 3 avec chaque colonne une séquence de 0 à 10 (nos valeurs x pour chaque ligne). Y est une matrice de 11 x 3 avec chaque colonne calculée à partir du vecteur x (par vos équations de ligne).

xlab et ylab juste étiqueter les axes x et y. Le type='l' spécifie que les lignes doivent être tracées (voir les autres options en tapant ?matplot ou ?plot à l'invite R).

Une bonne chose à propos de matplot est que les valeurs par défaut peuvent être bien pour tracer plusieurs lignes - il choisit différentes couleurs et styles par ligne. Ceux-ci peuvent également être modifiés: voir ?matplot (et lty pour plus de détails).

2

Vous pouvez également utiliser la fonction curve. Par exemple:

curve(3*x+1, from=-5, to=5) 
curve(4*x+2, add=T) 
curve(x+1, add=T) 

Ici, le paramètre add provoque les parcelles à mettre sur le même graphique