je souhaite tracer plusieurs plots sur une même page mais je rencontre plusieurs problèmes.
J'ai plusieurs conditions "Trait1" pour lesquelles je voudrais voir apparaître le nuage de points des "nCells" en fonction de "day".
L'idée serait ensuite de mettre en rouge les points correspondant à Trait2a="ATB" en bleu et ceux de Trait2a="woATB" en rouge.
J'ai commencé à balbutier un script mais au lieu de voir un nuage de points, j'obtiens un boxplot (le même pour tous les "Trait1") ?!
Voici mon dataframe :
Code : Tout sélectionner
plate <- structure(list(Cond = structure(1:28, .Label = c("j1_05_woATB",
"j1_10_woATB", "j1_20_woATB", "j1_50_woATB", "j2_05_ATB", "j2_05_woATB",
"j2_10_ATB", "j2_10_woATB", "j2_20_ATB", "j2_20_woATB", "j2_50_ATB",
"j2_50_woATB", "j3_05_ATB", "j3_05_woATB", "j3_10_ATB", "j3_10_woATB",
"j3_20_ATB", "j3_20_woATB", "j3_50_ATB", "j3_50_woATB", "j4_05_ATB",
"j4_05_woATB", "j4_10_ATB", "j4_10_woATB", "j4_20_ATB", "j4_20_woATB",
"j4_50_ATB", "j4_50_woATB"), class = "factor"), nCells = c(47.1852,
53.5185, 53.7778, 50.5556, 95.1481, 120.63, 96.9259, 125.519,
86.8148, 105.296, 84.5185, 89.8889, 182.259, 281.37, 203.111,
245.778, 226.333, 302.259, 222.222, 281.741, 381.741, 587.815,
387.333, 619.593, 486.852, 733.704, 480.259, 624.963), DeadCells = c(2.19499,
1.12132, 2.61569, 1.97872, 1.8776, 1.11307, 3.62967, 1.19153,
5.71182, 2.22468, 6.04897, 1.54371, 30.909, 1.31003, 10.0827,
1.81695, 9.6289, 2.2471, 15.975, 6.1745, 4.5747, 1.05255, 7.50961,
2.63833, 4.14927, 4.94735, 2.96878, 15.829), day = structure(c(1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("j1",
"j2", "j3", "j4"), class = "factor"), Trait = structure(c(2L,
4L, 6L, 8L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 1L, 2L, 3L, 4L, 5L,
6L, 7L, 8L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L), .Label = c("05_ATB",
"05_woATB", "10_ATB", "10_woATB", "20_ATB", "20_woATB", "50_ATB",
"50_woATB"), class = "factor"), Trait1 = structure(c(1L, 2L,
3L, 4L, 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 1L, 1L, 2L, 2L, 3L, 3L,
4L, 4L, 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L), .Label = c("05", "10",
"20", "50"), class = "factor"), Trait2a = structure(c(1L, 1L,
1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("ATB", "woATB"
), class = "factor"), Trait2b = structure(c(2L, 2L, 2L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("ATB", "woATB"), class = "factor")), .Names = c("Cond",
"nCells", "DeadCells", "day", "Trait", "Trait1", "Trait2a", "Trait2b"
), row.names = c(NA, -28L), class = "data.frame")
et mon script :
Code : Tout sélectionner
layout(matrix(1:4,nrow=2)) # on divise la fenêtre en 4
for (i in levels(plate$Trait1)) { #pour les 4 types de traitement : [EGF] = 05, 10, 20 ou 50
plot(plate$day,plate$nCells, type="p", main =i, ylab="nCells / Field") #on trace un nuage de points de l'ensemble des données
}
Mon idée serait de poursuivre avec le script suivant mais je suis bloquée car la première partie ne me donne pas un nuage de points ...
Code : Tout sélectionner
layout(matrix(1:4,nrow=2)) # on divise la fenêtre en 4
for (i in levels(plate$Trait1)) { #pour les 4 types de traitement : [EGF] = 05, 10, 20 ou 50
plot(plate$day,plate$nCells, type="p", main =i, ylab="nCells / Field") #on trace un nuage de points de l'ensemble des données
}
#on selectionne les donnees avec ATB et on les trace en rouge puis woATB et on les trace en bleu
DataATB = which(plate$Trait2a =="wATB")
points(plate$day,plate[DataATB,j], col="red", type="b")
DatawoATB = which(plate$Trait2a =="woATB")
points(plate$day,plate[DatawoATB,j], col="blue", type="b")
}
Merci par avance de l'aide, des conseils et des pistes que vous pourrez me donner.
Patricia