Bonsoir à tous,

J'ai 2 questions graphiques sur R:

1- Faire un boxplot associé à la représentation des points individuels "éclatés"
J'ai découvert pour cela le package beeswarm. Voici un lien avec 2 exemples que j'ai essayé https://denishaine.wordpress.com/201...-with-ggplot2/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
beeswarm(time_survival ~ event_survival, data = breast2, pch = 16,
         pwcol = as.numeric(ER), xlab = '', 
         ylab = 'Follow-up time (months)', 
         labels = c('Censored', 'Metastasis'))
boxplot(time_survival ~ event_survival, data = breast2, add = T,
        names = c("",""), col="#0000ff22")  
legend('topright', legend = levels(breast$ER), title = 'ER', 
        pch = 16, col = 1:2)
et

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
beeswarm <- beeswarm(time_survival ~ event_survival, 
            data = breast, method = 'swarm', 
            pwcol = ER)[, c(1, 2, 4, 6)]
colnames(beeswarm) <- c("x", "y", "ER", "event_survival") 
 
library(ggplot2)
library(plyr)
beeswarm.plot <- ggplot(beeswarm, aes(x, y)) +
  xlab("") +
  scale_y_continuous(expression("Follow-up time (months)"))
beeswarm.plot2 <- beeswarm.plot + geom_boxplot(aes(x, y,
  group = round_any(x, 1, round)), outlier.shape = NA)
beeswarm.plot3 <- beeswarm.plot2 + geom_point(aes(colour = ER)) +
  scale_colour_manual(values = c("black", "red")) + 
  scale_x_continuous(breaks = c(1:2), 
         labels = c("Censored", "Metastasis"), expand = c(0, 0.5))
Ce sont 2 exemples du site que j'ai plus ou moins réussi à adapter à mon cas et dont les sorties graphiques sont disponibles en suivant le lien ci-dessus.

Par contre dans mon cas l'équivalent de la variable ER a trois modalités pour lesquelles j'ai un code couleur défini à suivre.
Et dans ces 2 codes je ne trouve pas le moyen d'attribuer une couleur spécifique à chacune des modalités de cette variable.
Quelqu'un aurait - il la solution?

Autre tentative: utilisation du package beeswarm tout seul, avec 6 subsets de ma base et une couleur par groupe. Mais là je n'arrive pas à afficher le boxplot correspondant par dessus: je n'ai pas de message d'erreur mais je n'ai pas non plus de boxplot... est-ce parce que ce n'est pas le même data partout?...
voici le code correspondant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
beeswarm(A_1$C,method="swarm",at=0.1,pch=19, ylim=c(12,33),xlim=c(0.05,0.25), col="gold2")
beeswarm(A_2$C,add=T,method="swarm",at=0.1,pch=1, ylim=c(12,33),xlim=c(0.05,0.25), col="blue")
beeswarm(A_3$C,add=T,method="swarm",at=0.102,pch=1, ylim=c(12,33),xlim=c(0.05,0.25), col="green")
beeswarm(D_1$C,add=T,method="swarm",at=0.202,pch=20, ylim=c(12,33),xlim=c(0.05,0.25), col="gold2")
beeswarm(D_2$C,add=T,method="swarm",at=0.2,pch=1, ylim=c(12,33),xlim=c(0.05,0.25), col="blue")
beeswarm(D_3$C,add=T,method="swarm",at=0.2,pch=1, ylim=c(12,33),xlim=c(0.05,0.25), col="green")
 
boxplot (C~O, data=data,main="CT at D0", add=T)

2- Courbes de survie
a- je ne comprends pas très bien la différence entre survfit et npsurv (package rms)?
b- avec la fonction "classique" plot (survfit (...)) j'arrive assez bien à maîtriser les IC des courbes de KM. Par contre les nb de sujets à risque au cours du temps ne sont pas indiqués "automatiquement"; avec la fonction survplot
-- je n'arrive pas à utiliser survplot (survfit (...)) : pourquoi? seul survplot (npsurv(...)) fonctionne.
-- avec survplot (npsurv(...)) on peut ajouter l'option n.risk. Par contre je n'arrive plus à faire apparaître les IC, malgré les options adéquates ...


Merci beaucoup, sincèrement, si quelqu'un peut me dépanner!!

Merci pour votre aide par avance,

AE