R Language
Tracé de base
Recherche…
Paramètres
Paramètre | Détails |
---|---|
x | variable d'axe x. Peut fournir des data$variablex ou des data[,x] |
y | variable d'axe y. Peut fournir des data$variabley ou des data[,y] |
main | Titre principal de l'intrigue |
sub | Sous-titre optionnel de l'intrigue |
xlab | Etiquette pour l'axe des x |
ylab | Etiquette pour l'axe y |
pch | Entier ou caractère indiquant le symbole de traçage |
col | Entier ou chaîne indiquant la couleur |
type | Type de parcelle. "p" pour les points, "l" pour les lignes, "b" pour les deux, "c" pour les parties seules de "b" , "o" pour les deux "overplotted", "h" pour "histogramme" ( ou des lignes verticales «haute densité», "s" pour les marches d'escalier, "S" pour les autres marches, "n" pour l'absence de tracé |
Remarques
Les éléments listés dans la section "Paramètres" sont une petite fraction des paramètres possibles qui peuvent être modifiés ou définis par la fonction par
défaut. Voir le par
Pour une liste plus complète. De plus, tous les périphériques graphiques, y compris les périphériques graphiques interactifs spécifiques au système, auront un ensemble de paramètres permettant de personnaliser la sortie.
Terrain de base
Un tracé de base est créé en appelant plot()
. Ici, nous utilisons le cars
données intégré des cars
qui contient la vitesse des voitures et les distances prises pour s’arrêter dans les années 1920. (Pour en savoir plus sur le jeu de données, utilisez help (cars)).
plot(x = cars$speed, y = cars$dist, pch = 1, col = 1,
main = "Distance vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
Nous pouvons utiliser de nombreuses autres variantes du code pour obtenir le même résultat. Nous pouvons également modifier les paramètres pour obtenir des résultats différents.
with(cars, plot(dist~speed, pch = 2, col = 3,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance"))
Des fonctionnalités supplémentaires peuvent être ajoutées à ce tracé en appelant points()
, text()
, mtext()
, lines()
, grid()
, etc.
plot(dist~speed, pch = "*", col = "magenta", data=cars,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
mtext("In the 1920s.")
grid(,col="lightblue")
Matplot
matplot
est utile pour tracer rapidement plusieurs ensembles d'observations à partir du même objet, en particulier à partir d'une matrice, sur le même graphique.
Voici un exemple de matrice contenant quatre ensembles de tirages aléatoires, chacun avec une moyenne différente.
xmat <- cbind(rnorm(100, -3), rnorm(100, -1), rnorm(100, 1), rnorm(100, 3))
head(xmat)
# [,1] [,2] [,3] [,4]
# [1,] -3.072793 -2.53111494 0.6168063 3.780465
# [2,] -3.702545 -1.42789347 -0.2197196 2.478416
# [3,] -2.890698 -1.88476126 1.9586467 5.268474
# [4,] -3.431133 -2.02626870 1.1153643 3.170689
# [5,] -4.532925 0.02164187 0.9783948 3.162121
# [6,] -2.169391 -1.42699116 0.3214854 4.480305
Une façon de tracer toutes ces observations sur le même graphique est de faire un plot
appel suivi de trois plus de points
ou de lines
d' appels.
plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')
Cependant, cela est à la fois fastidieux et cause des problèmes, entre autres, par défaut, les limites des axes sont fixées par plot
pour ne tenir que dans la première colonne.
Dans cette situation, il est beaucoup plus pratique d’utiliser la fonction matplot
, qui ne nécessite qu’un appel et prend automatiquement en charge les limites des axes et modifie l’esthétique de chaque colonne pour les distinguer.
matplot(xmat, type = 'l')
Notez que, par défaut, matplot
varie à la fois en couleur ( col
) et en type de ligne ( lty
) car cela augmente le nombre de combinaisons possibles avant qu'elles ne soient répétées. Cependant, toutes ces esthétiques (ou les deux) peuvent être fixées à une seule valeur ...
matplot(xmat, type = 'l', col = 'black')
... ou un vecteur personnalisé (qui recyclera au nombre de colonnes, en suivant les règles standard de recyclage des vecteurs R).
matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))
Les paramètres graphiques standard, y compris main
, xlab
, xmin
, fonctionnent exactement de la même manière que pour plot
. Pour plus sur ceux-ci, voir ?par
.
Comme pour plot
, si on ne donne qu'un seul objet, matplot
suppose que c'est la variable y
et utilise les indices pour x
. Cependant, x
et y
peuvent être spécifiés explicitement.
matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')
En fait, x
et y
peuvent tous deux être des matrices.
xes <- cbind(seq(0, 10, length.out = 100),
seq(2.5, 12.5, length.out = 100),
seq(5, 15, length.out = 100),
seq(7.5, 17.5, length.out = 100))
matplot(x = xes, y = xmat, type = 'l')
Histogrammes
Les histogrammes permettent un pseudo-tracé de la distribution sous-jacente des données.
hist(ldeaths)
hist(ldeaths, breaks = 20, freq = F, col = 3)
Combiner des parcelles
Il est souvent utile de combiner plusieurs types de tracé dans un graphique (par exemple, un graphique à barres à côté d'un diagramme de dispersion). R facilite les choses à l'aide des fonctions par()
et layout()
.
par()
par
les arguments mfrow
ou mfcol
pour créer une matrice de nrows et de ncols c(nrows, ncols)
qui serviront de grille à vos tracés. L'exemple suivant montre comment combiner quatre tracés dans un graphique:
par(mfrow=c(2,2))
plot(cars, main="Speed vs. Distance")
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
layout()
Le layout()
est plus flexible et vous permet de spécifier l'emplacement et l'étendue de chaque tracé dans le graphique combiné final. Cette fonction attend un objet matrice en entrée:
layout(matrix(c(1,1,2,3), 2,2, byrow=T))
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
Parcelle de densité
Un suivi très utile et logique des histogrammes consisterait à tracer la fonction de densité lissée d'une variable aléatoire. Un tracé de base produit par la commande
plot(density(rnorm(100)),main="Normal density",xlab="x")
ressemblerait
Vous pouvez superposer un histogramme et une courbe de densité avec
x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")
qui donne
Fonction de distribution cumulative empirique
Un suivi très utile et logique des histogrammes et des tracés de densité serait la fonction de distribution cumulative empirique. Nous pouvons utiliser la fonction ecdf()
à cette fin. Un tracé de base produit par la commande
plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")
Premiers pas avec R_Plots
- Scatterplot
Vous avez deux vecteurs et vous voulez les tracer.
x_values <- rnorm(n = 20 , mean = 5 , sd = 8) #20 values generated from Normal(5,8)
y_values <- rbeta(n = 20 , shape1 = 500 , shape2 = 10) #20 values generated from Beta(500,10)
Si vous souhaitez effectuer une parcelle qui a les y_values
dans l' axe vertical et les x_values
dans l' axe horizontal, vous pouvez utiliser les commandes suivantes:
plot(x = x_values, y = y_values, type = "p") #standard scatter-plot
plot(x = x_values, y = y_values, type = "l") # plot with lines
plot(x = x_values, y = y_values, type = "n") # empty plot
Vous pouvez taper ?plot()
dans la console pour en savoir plus sur les options.
- Boxplot
Vous avez des variables et vous souhaitez examiner leurs distributions
#boxplot is an easy way to see if we have some outliers in the data.
z<- rbeta(20 , 500 , 10) #generating values from beta distribution
z[c(19 , 20)] <- c(0.97 , 1.05) # replace the two last values with outliers
boxplot(z) # the two points are the outliers of variable z.
- Histogrammes
Un moyen facile de dessiner des histogrammes
hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
- Camemberts
Si vous voulez visualiser les fréquences d'une variable, dessinez juste une tarte
Nous devons d'abord générer des données avec des fréquences, par exemple:
P <- c(rep('A' , 3) , rep('B' , 10) , rep('C' , 7) )
t <- table(P) # this is a frequency matrix of variable P
pie(t) # And this is a visual version of the matrix above