ggplot avec 2 courbes de longueurs différentes

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

mathieu baure
Messages : 3
Enregistré le : 07 Juil 2020, 09:45

ggplot avec 2 courbes de longueurs différentes

Messagepar mathieu baure » 06 Aoû 2020, 09:23

Bonjour
Je voudrai si possible afficher 2 courbes sur le même graph mais une courbe plus courte que l'autre. Par exemple pour une timeseries qui s’arrête avant l'autre.(Une allant du 15 juin u 15 juillet, l'autre du 15 juin au 20 juillet). J'ai essayé de faire un petit exemple avec ggplot mais cela me donne une erreur:
Erreur : Aesthetics must be either length 1 or the same as the data (100):


Est il possible faire ce que je demande ?

Code : Tout sélectionner

v1 <- 1:100
v4 <- 1:50
v2 <- dnorm(v1, mean = 50, sd = 10, log = FALSE)
v3 <- dnorm(v4, mean = 60, sd = 30, log = FALSE)
data <- data.frame(v1, v2, v3)
ggplot(data) + geom_point(aes(v1, v2), colour = "blue") + geom_point(aes(v4, v3), colour = "red")

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: ggplot avec 2 courbes de longueurs différentes

Messagepar Mickael Canouil » 06 Aoû 2020, 09:42

Bonjour,

oui c'est possible et c'est naturellement ce que fait ggplot2, à la condition de respecter sa logique, ce qui n'est pas le cas de votre code.
Je vous invite à regarder au moins la première partie du Workshop de ggplot2 de Thomas Lin Pedersen (en charge de ggplot2).
https://www.youtube.com/watch?v=h29g21z0a68

ggplot2 exploite le format "long" des données et non "large" (même s'il peut tout gérer, ce n'est juste pas simple).

Code : Tout sélectionner

df <- rbind(
  data.frame(
    x = 1:100,
    y = dnorm(1:100, mean = 50, sd = 10, log = FALSE),
    group = "A"
  ), 
  data
.frame(
    x = 1:50,
    y = dnorm(1:50, mean = 60, sd = 30, log = FALSE),
    group = "B"
  )

Code : Tout sélectionner

head(df)
#>   x            y group
#> 1 1 2.438961e-07     A
#> 2 2 3.961299e-07     A
#> 3 3 6.369825e-07     A
#> 4 4 1.014085e-06     A
#> 5 5 1.598374e-06     A
#> 6 6 2.494247e-06     A     

Code : Tout sélectionner

library("ggplot2")
ggplot(data = df, mapping = aes(= x, y = y, colour = group)) + 
  geom_point
()

Image

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

mathieu baure
Messages : 3
Enregistré le : 07 Juil 2020, 09:45

Re: ggplot avec 2 courbes de longueurs différentes

Messagepar mathieu baure » 12 Aoû 2020, 08:21

Bonjour Mickael, merci beaucoup !!


Retourner vers « Questions en cours »

Qui est en ligne

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