Superposition des courbes de fonctions de répartition.

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

franck ekolle
Messages : 2
Enregistré le : 19 Juin 2018, 08:06

Superposition des courbes de fonctions de répartition.

Messagepar franck ekolle » 25 Juil 2018, 00:51

Bonsoir. Ma question peut sembler triviale pour certains. Je voudrais superposer sur le même graphe les courbes représentant la fonctions de répartition empirique de plusieurs variables. Voilà le code que j'utilise pour tracer cette fonction mais j'arrive pas à superposer les courbes des variables 1 et 2, même en utilisant par( new=T), xyplot,...etc
Merci de m'aider.


ggplot(data, aes(variable1)) + stat_ecdf(geom="point", pch=1)

ggplot(data, aes(variable2)) + stat_ecdf(geom="point", pch=3)

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: Superposition des courbes de fonctions de répartition.

Messagepar Logez Maxime » 25 Juil 2018, 06:51

Bonjour,

La première solution est de passer ton tableau en format "long", avec une colonne pour les valeurs et une autre colonne indiquant la variable concernée :

Code : Tout sélectionner

library(tidyr)
library(ggplot2)

# pour l'exemple
dta <- data.frame(variable1 = rnorm(100), variable2 = rnorm(100, 0.25))

# passage en long
dtal <- gather(dta, "variable", "valeur")
ggplot(dtal, aes(valeur, group =variable, pch = variable)) + stat_ecdf(geom="point") +
  scale_shape_manual(values = c("variable1" = 1 , "variable2" = 3))
Sinon dans la deuxième stat_ecdf il faut lui spécifier que tu changes de variables via l'argument aes et repréciser d'ou viennent les données :

Code : Tout sélectionner

ggplot(dta, aes(variable1)) + stat_ecdf(geom="point", pch = 1) +
  stat_ecdf(aes(variable2), data = dta, pch = 3, geom = "point")


Cordialement,
Maxime

Guillaume Devailly
Messages : 28
Enregistré le : 22 Déc 2017, 12:31

Re: Superposition des courbes de fonctions de répartition.

Messagepar Guillaume Devailly » 30 Juil 2018, 15:31

Il devrait aussi être possible de faire:

Code : Tout sélectionner

 ggplot(data) +
     stat_ecdf(mapping = aes(variable1), geom="point", pch=1) +
     stat_ecdf(mapping = aes(variable2), geom="point", pch=3)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité