Truc bizarre avec la fonction barplot
Voici le programme suivant :
Code:
1 2 3 4
| A=rbind(c(1,0,0,0,0,1),c(0,0,0,2,1,2))
B=rbind(c(1,NA,NA,NA,NA,0.9),c(NA,NA,NA,1.8,0.8,1.7))
barplot(A,col=c('blue','red')) #barres verticales bleues et rouges
barplot(B,col=c('green','cyan'),add=TRUE) #barres verticales vertes et cyan |
Lorsqu'on lance le 1er barplot, les barres bleues et rouges s'affichent bien. Elles ont les hauteur qui correspondent à leur valeur. 1 et 1 en bleu aux position 1 et 6, 2-1-2 en rouge aux positions 3, 4, 5.
Lorsqu'on lance le 2ème barplot, qui est en superposition du 1er, les barres vertes s'affichent, en position 1 et 6, et avec une hauteur de 1 et 0.9.
Jusque là, rien à dire.
En revanche, une seule barre cyan s'affiche, en position 6, et sur une hauteur correcte de 1.7.
On a donc deux barres verticales de couleur cyan qui n'apparaissent pas.
Elles devraient être en position 4 et 5, et avoir les hauteurs de 1.8 et 0.8.
Maintenant, si on remplace les NA dans le vecteur B par des 0, tout s'affiche correctement.
Est-ce que quelqu'un saurait me dire ce qui se passe ?
1 pièce(s) jointe(s)
Truc bizarre avec la fonction barplot
Bonjour,
Pour comprendre ce qui se passe, commencez par réaliser le deuxième barplot sans le superposer au premier.
Code:
1 2 3 4 5
| > B
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 NA NA NA NA 0.9
[2,] NA NA NA 1.8 0.8 1.7
> barplot(B,col=c('green','cyan')) |
Pièce jointe 223142
R ne dessine pas les barres correspondant à B[2,4] et B[2,5] parce qu'il ne sait pas à quel niveau les faire commencer.
Cordialement,
1 pièce(s) jointe(s)
Truc bizarre avec la fonction barplot
Je pense que c'est parce que c'est la première donc on est sûr qu'elle commence à 0.
En inversant l'ordre des vecteurs :
Code:
1 2 3 4 5 6
| > C=rbind(c(NA,NA,NA,1.8,0.8,1.7),c(1,NA,NA,NA,NA,0.9))
> C
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] NA NA NA 1.8 0.8 1.7
[2,] 1 NA NA NA NA 0.9
> barplot(C,col=c('green','cyan')) |
Pièce jointe 223143
Cordialement,