Plusieurs courbes ggplot avec le même data.frame

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

Samuel Pereira Dias
Messages : 62
Enregistré le : 07 Mar 2014, 11:09

Plusieurs courbes ggplot avec le même data.frame

Messagepar Samuel Pereira Dias » 22 Aoû 2022, 13:36

Bonjour,

Malgré mes recherches, je n'ai pas réussi à bien comprendre comment résoudre mon problème.

J'ai une série temporelle de donnée: Nombre de vendeurs sur 5 marchés suivis sur 40 semaines environ. J'ai 4 périodes de collecte de données, et des périodes intermédiaires sans collecte de données. Comment faire en sorte que mes courbes sur ggplot, ne démarrent pas de 0 à chaque fin et début de période de collecte. Il doit y avoir un paramètre à fixer au niveau de "Group", ou au sein de "aes".

Le champ "Campagne" est là pour borner cela, mais je ne sais pas comment l'insérer dans le code ggplot ci-dessus. J'imagine qu'il faudrait créer un premier espace graphique avec les limits x et y voulus et y faire afficher progressivement mes courbes ?

Ci-joint un jeu de donnée pris aléatoirement sur mon data-frame:

Code : Tout sélectionner

library(ggplot2)
tab<-structure(list(week = structure(c(
12L, 4L, 28L, 30L, 27L, 4L,
6L, 7L, 6L, 36L, 22L, 30L, 6L, 8L, 12L, 19L, 35L, 28L, 30L, 27L,
17L, 11L, 15L, 3L, 34L, 7L, 29L, 36L, 15L, 25L), levels = c("5",
"6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
"17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27",
"28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38",
"39", "40"), class = "factor"
), Marchés = c("
Marché Central",
"Marché de Port Hydro Congo", "No Data", "Marché de Thanry",
"Marché de Pokola", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Kabo", "Marché de Thanry",
"Marché de Kabo", "Marché de Pokola", "No Data", "Marché de Pokola",
"Marché de Port Hydro Congo", "No Data", "Marché de Kabo",
"Marché de Thanry", "Marché de Port Hydro Congo", "Marché Central",
"Marché de Djazzi", "Marché de Pokola", "Marché de Port Hydro Congo",
"Marché de Kabo", "Marché de Djazzi", "Marché de Thanry",
"Marché de Kabo", "Marché de Pokola", "Marché de Pokola",
"Marché de Kabo"
), nbVendTot = c(
50.40625, 42.5340501792115,
0, 0, 40.9752066115703, 13, 0, 0, 0, 6, 0, 0, 0, 0, 31.7121771217712,
0, 5, 0, 0, 47, 0, 45.6470588235294, 0, 3.5, 15.027397260274,
0, 0, 50, 0, 3.28
), Campagne = c(
"2", "1", NA, NA, "3", "1",
NA, NA, NA, "4", NA, NA, NA, NA, "2", NA, "4", NA, NA, "3", NA,
"2", NA, "1", "4", NA, NA, "4", NA, "3")), row.names = c("8",
"80", "1041", "911", "71", "23", "321", "331", "471", "110",
"581", "311", "921", "191", "84", "1001", "56", "891", "761",
"14", "381", "63", "661", "40", "36", "781", "601", "76", "211",
"50"), class = "data.frame")

## sur ggplot

Vt <- ggplot(tab, aes(x=week, y=nbVendTot,group=Marchés,color=Marchés)) +
  geom_point()+ geom_line(size=0.7) + labs(
    x = "",
    y = "Nb vendeurs")+
  scale_color_manual(values= colour_scale)+
  annotate(geom = "rect", xmin = 5,xmax = 22,  ymin = -Inf, ymax = Inf,
           alpha = .1, fill = "blue")+
  annotate(geom = "rect", xmin = 35,xmax = Inf,  ymin = -Inf, ymax = Inf,
           alpha = .1, fill = "blue")+
  theme(axis.text.x=element_blank(),
        axis.title.y = element_text(size = 10, face="bold"))+
  ggtitle("Nombre de vendeurs totaux par marché en 2021")+
  theme(legend.position="None")
X11()
Vt
Résultats :
[img][url] https://imgur.com/fxVH6Xp [/url][/img]

# Désolé, je n'arrive pas à faire afficher l'image automatiquement
 

sur l'axe des x (semaines calendaires), j'aimerais donc que mes courbes s'arrêtent à 9,
reprennent à 14,
s'arrêtent à 18,
reprennent à 27,
s'arrêtent à 31 et
reprennent à 35


J'espère que je suis assez claire dans la description de mes besoins.
Merci d'avance à tous,

Samuel
Samuel Pereira Dias

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

Re: Plusieurs courbes ggplot avec le même data.frame

Messagepar Logez Maxime » 22 Aoû 2022, 18:53

Bonjour,

Je ne suis pas sur d'avoir compris ce que tu souhaites, mais si tu veux avoir quelque chose de relativement similaire à l'image, je pense qu'il te faut d'abord reconstituer un jeu de données :

Code : Tout sélectionner

tab2 <- expand.grid(week = 5:40, Marchés = unique(tab$Marchés))
tab2 <- cbind(tab2, tab[match(with(tab2, paste(week, Marchés, sep= "_")), with(tab, paste(week, Marchés, sep="_"))),3:4])
tab2[is.na(tab2)] <- 0
Et ensuite tu appliquer ton code pour ton graphique sur ce tableau. Il est difficile de te voir ce que ça peut rendre avec ton exemple parce qu'il y a très peu de données qui se suivent.
Si le but c'est de sectionner ton axe des x pour ne pas représenter les périodes manquantes, tu peux définir un facteur qui définisse tes périodes de temps, d'appliquer ton code et de faire un facet_wrap ou grid sur ce facteur et de "coller" les facets. Une autre possibilité c'est de définir des plages de x qui se suivent (1:10) et ensuite d'attribuer à ces valeurs de x des étiquettes qui correspondent aux dates qui t'intéressent (semaine 8 à 12, 16 à20).

Cordialement,
Maxime

Samuel Pereira Dias
Messages : 62
Enregistré le : 07 Mar 2014, 11:09

Re: Plusieurs courbes ggplot avec le même data.frame

Messagepar Samuel Pereira Dias » 23 Aoû 2022, 15:46

Bonjour Maxime,
Merci pour ta réponse.
Je n'arrive pas bien encore à savoir comment m'y prendre. Sur les fonctions plot de base, il suffisait de produire X subset du Df sur les périodes voulues avec new=T en argument, mais sur ggplot je ne sais pas comment arriver au même résultat.

J'aimerais éviter les facets pour garder les courbes en un seul graphique (car celui-ci fait déjà partis d'une figure avec plusieurs autres graphiques).
J'aimerais éviter qu'elles rejoignent le 0 car ce serait faux, c'est juste qu'il n'y a pas de données disponibles. Si les courbes pouvaient s'arrêter simplement aux intervalles définis, au lieu d'aller chercher le 0 (ou le NA), j'aurai une représentation plus juste (moins confuse). J'avais bien rajouté une information "NoData", comme on peut le voir sur l'image envoyée, mais cela ne résout pas le problème des courbes à 0.

J'ai l'impression que le code que vous proposez correspond quelque peu à l'organisation des données que j'ai déjà (?).

Je me suis permis de glisser l'intégralité du jeu de données car en effet, peut-être arriveriez-vous plus facilement à comprendre mon problème ?
Merci!
S.

Code : Tout sélectionner

library(ggplot2)
tab<-structure(list(week = structure(c(1L, 2L, 3L, 4L, 5L, 10L, 11L,
12L, 13L, 23L, 24L, 25L, 26L, 27L, 32L, 33L, 34L, 35L, 36L, 1L,
2L, 3L, 4L, 5L, 10L, 11L, 12L, 13L, 23L, 24L, 25L, 26L, 27L,
32L, 33L, 34L, 35L, 36L, 2L, 3L, 4L, 5L, 10L, 11L, 12L, 13L,
14L, 23L, 24L, 25L, 26L, 31L, 32L, 33L, 34L, 35L, 1L, 2L, 3L,
4L, 5L, 10L, 11L, 12L, 13L, 14L, 23L, 24L, 25L, 26L, 27L, 32L,
33L, 34L, 35L, 36L, 1L, 2L, 3L, 4L, 5L, 10L, 11L, 12L, 13L, 23L,
24L, 25L, 26L, 27L, 32L, 33L, 34L, 35L, 36L, 10L, 11L, 12L, 13L,
14L), levels = c("5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35",
"36", "37", "38", "39", "40"), class = "factor"), Marchés = c("Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry"
), nbVendTot = c(56, 62.2849604221636, 66.4647619047619, 61.9784615384615,
59.1198501872659, 68, 54.4768392370572, 50.40625, 37.1477272727273,
43.9124423963134, 42.0698924731183, 40.3653846153846, 45.4221105527638,
47, 52.9056603773585, 42, 51.8166666666667, 39.3538461538462,
47, 19, 14.4285714285714, 16.4259259259259, 13, 19, 18, 14.8214285714286,
10, 8.1578947368421, 12.4285714285714, 10.0769230769231, 10.5675675675676,
7.30434782608696, 12, 10.6811594202899, 10.7111111111111, 15.027397260274,
11.9444444444444, 11, 5.33333333333333, 3.5, 5.47368421052632,
4, 4, 3.21052631578947, 5.625, 4.92, 4, 5, 3.70833333333333,
3.28, 4, 3.57142857142857, 5.75, 5.375, 4, 5, 60, 54, 50.3333333333333,
56.043956043956, 53.9672131147541, 45.5625, 45.6470588235294,
48.8571428571429, 45.8870967741936, 42, 44.7245508982036, 41.8074534161491,
41.6666666666667, 40.2547770700637, 40.9752066115703, 45.1636363636364,
47.541935483871, 40.5359477124183, 41.8333333333333, 50, 31,
44.2978723404255, 61.8938053097345, 42.5340501792115, 32, 36.9064748201439,
36.0503355704698, 31.7121771217712, 29.1981981981982, 19.75,
17.4159292035398, 19.7721518987342, 20.6341463414634, 16, 21.5178571428571,
29.3382352941176, 38.5731707317073, 33.2445414847162, 31, 9.5,
9.80392156862745, 8, 7.57142857142857, 6), Campagne = c("1",
"1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3", "3",
"4", "4", "4", "4", "4", "1", "1", "1", "1", "1", "2", "2", "2",
"2", "3", "3", "3", "3", "3", "4", "4", "4", "4", "4", "1", "1",
"1", "1", "2", "2", "2", "2", "2", "3", "3", "3", "3", "4", "4",
"4", "4", "4", "1", "1", "1", "1", "1", "2", "2", "2", "2", "2",
"3", "3", "3", "3", "3", "4", "4", "4", "4", "4", "1", "1", "1",
"1", "1", "2", "2", "2", "2", "3", "3", "3", "3", "3", "4", "4",
"4", "4", "4", "2", "2", "2", "2", "2")), row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35",
"36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46",
"47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57",
"58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68",
"69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79",
"80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90",
"91", "92", "93", "94", "95", "96", "97", "98", "99", "100"), class = "data.frame")
> dput(tab[,c(1,2,3,9)])
structure(list(week = structure(c(1L, 2L, 3L, 4L, 5L, 10L, 11L,
12L, 13L, 23L, 24L, 25L, 26L, 27L, 32L, 33L, 34L, 35L, 36L, 1L,
2L, 3L, 4L, 5L, 10L, 11L, 12L, 13L, 23L, 24L, 25L, 26L, 27L,
32L, 33L, 34L, 35L, 36L, 2L, 3L, 4L, 5L, 10L, 11L, 12L, 13L,
14L, 23L, 24L, 25L, 26L, 31L, 32L, 33L, 34L, 35L, 1L, 2L, 3L,
4L, 5L, 10L, 11L, 12L, 13L, 14L, 23L, 24L, 25L, 26L, 27L, 32L,
33L, 34L, 35L, 36L, 1L, 2L, 3L, 4L, 5L, 10L, 11L, 12L, 13L, 23L,
24L, 25L, 26L, 27L, 32L, 33L, 34L, 35L, 36L, 10L, 11L, 12L, 13L,
14L, 23L, 24L, 25L, 26L, 27L, 32L, 33L, 34L, 35L, 36L, 9L, 15L,
16L, 17L, 18L, 19L, 20L, 21L, 22L, 28L, 29L, 30L, 6L, 7L, 8L,
9L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 28L, 29L, 30L, 6L,
7L, 8L, 9L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 28L, 29L,
30L, 6L, 7L, 8L, 9L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L,
28L, 29L, 30L, 6L, 7L, 8L, 9L, 15L, 16L, 17L, 18L, 19L, 20L,
21L, 22L, 28L, 29L, 30L, 6L, 7L, 8L, 9L, 15L, 16L, 17L, 18L,
19L, 20L, 21L, 22L, 28L, 29L, 30L, 6L, 7L, 8L, 9L, 15L, 16L,
17L, 18L, 19L, 20L, 21L, 22L, 28L, 29L, 30L), levels = c("5",
"6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
"17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27",
"28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38",
"39", "40"), class = "factor"), Marchés = c("Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché Central", "Marché Central", "Marché Central",
"Marché Central", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Pokola", "Marché de Pokola",
"Marché de Pokola", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Djazzi", "Marché de Djazzi",
"Marché de Djazzi", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Kabo", "Marché de Kabo", "Marché de Kabo", "Marché de Kabo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Port Hydro Congo",
"Marché de Port Hydro Congo", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "Marché de Thanry", "Marché de Thanry",
"Marché de Thanry", "No Data", "No Data", "No Data", "No Data",
"No Data", "No Data", "No Data", "No Data", "No Data", "No Data",
"No Data", "No Data", "No Data", "No Data", "No Data"), nbVendTot = c(56,
62.2849604221636, 66.4647619047619, 61.9784615384615, 59.1198501872659,
68, 54.4768392370572, 50.40625, 37.1477272727273, 43.9124423963134,
42.0698924731183, 40.3653846153846, 45.4221105527638, 47, 52.9056603773585,
42, 51.8166666666667, 39.3538461538462, 47, 19, 14.4285714285714,
16.4259259259259, 13, 19, 18, 14.8214285714286, 10, 8.1578947368421,
12.4285714285714, 10.0769230769231, 10.5675675675676, 7.30434782608696,
12, 10.6811594202899, 10.7111111111111, 15.027397260274, 11.9444444444444,
11, 5.33333333333333, 3.5, 5.47368421052632, 4, 4, 3.21052631578947,
5.625, 4.92, 4, 5, 3.70833333333333, 3.28, 4, 3.57142857142857,
5.75, 5.375, 4, 5, 60, 54, 50.3333333333333, 56.043956043956,
53.9672131147541, 45.5625, 45.6470588235294, 48.8571428571429,
45.8870967741936, 42, 44.7245508982036, 41.8074534161491, 41.6666666666667,
40.2547770700637, 40.9752066115703, 45.1636363636364, 47.541935483871,
40.5359477124183, 41.8333333333333, 50, 31, 44.2978723404255,
61.8938053097345, 42.5340501792115, 32, 36.9064748201439, 36.0503355704698,
31.7121771217712, 29.1981981981982, 19.75, 17.4159292035398,
19.7721518987342, 20.6341463414634, 16, 21.5178571428571, 29.3382352941176,
38.5731707317073, 33.2445414847162, 31, 9.5, 9.80392156862745,
8, 7.57142857142857, 6, 7.30909090909091, 7.37735849056604, 9.08474576271187,
9.32258064516129, 5.5, 10.030303030303, 11.4736842105263, 8.04761904761905,
11.0169491525424, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0), Campagne = c("1", "1", "1", "1", "1", "2", "2",
"2", "2", "3", "3", "3", "3", "3", "4", "4", "4", "4", "4", "1",
"1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3", "3",
"4", "4", "4", "4", "4", "1", "1", "1", "1", "2", "2", "2", "2",
"2", "3", "3", "3", "3", "4", "4", "4", "4", "4", "1", "1", "1",
"1", "1", "2", "2", "2", "2", "2", "3", "3", "3", "3", "3", "4",
"4", "4", "4", "4", "1", "1", "1", "1", "1", "2", "2", "2", "2",
"3", "3", "3", "3", "3", "4", "4", "4", "4", "4", "2", "2", "2",
"2", "2", "3", "3", "3", "3", "3", "4", "4", "4", "4", "4", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35",
"36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46",
"47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57",
"58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68",
"69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79",
"80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90",
"91", "92", "93", "94", "95", "96", "97", "98", "99", "100",
"101", "102", "103", "104", "105", "106", "107", "108", "109",
"110", "510", "610", "710", "810", "910", "1010", "111", "121",
"131", "141", "151", "161", "171", "181", "191", "201", "211",
"221", "231", "241", "251", "261", "271", "281", "291", "301",
"311", "321", "331", "341", "351", "361", "371", "381", "391",
"401", "411", "421", "431", "441", "451", "461", "471", "481",
"491", "501", "511", "521", "531", "541", "551", "561", "571",
"581", "591", "601", "611", "621", "631", "641", "651", "661",
"671", "681", "691", "701", "711", "721", "731", "741", "751",
"761", "771", "781", "791", "801", "811", "821", "831", "841",
"851", "861", "871", "881", "891", "901", "911", "921", "931",
"941", "951", "961", "971", "981", "991", "1001", "1011", "1021",
"1031", "1041", "1051", "1061"))
Samuel Pereira Dias

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

Re: Plusieurs courbes ggplot avec le même data.frame

Messagepar Logez Maxime » 24 Aoû 2022, 06:59

Bonjour,

En conservant les NA dans le data.frame de départ ?

Code : Tout sélectionner

tab2 <- expand.grid(week = 5:40, Marchés = unique(tab$Marchés))
tab2 <- cbind(tab2, tab[match(with(tab2, paste(week, Marchés, sep="_")), with(tab, paste(week, Marchés, sep="_"))),3:4])
ggplot(tab2, aes(x=week, y=nbVendTot,group=Marchés,color=Marchés)) +
  geom_point()+ geom_path(size=0.7) + labs(
    x = "",
    y = "Nb vendeurs")+
  scale_color_manual(values= colour_scale)+
  annotate(geom = "rect", xmin = 5,xmax = 22,  ymin = -Inf, ymax = Inf,
           alpha = .1, fill = "blue")+
  annotate(geom = "rect", xmin = 35,xmax = Inf,  ymin = -Inf, ymax = Inf,
           alpha = .1, fill = "blue")+
  theme(axis.text.x=element_blank(),
        axis.title.y = element_text(size = 10, face="bold"))+
  ggtitle("Nombre de vendeurs totaux par marché en 2021")+
  theme(legend.position="None")
Les NA permettent d'avoir une rupture dans la courbe sans repasser par le 0.
Est-ce que c'est ça que tu veux obtenir ?

Cordialement,
Maxime

Samuel Pereira Dias
Messages : 62
Enregistré le : 07 Mar 2014, 11:09

Re: Plusieurs courbes ggplot avec le même data.frame

Messagepar Samuel Pereira Dias » 25 Aoû 2022, 07:07

Bonjour,

Oui c'était simplement cela... ! Merci beaucoup de ton aide et de tes conseils, Samuel
Samuel Pereira Dias


Retourner vers « Questions en cours »

Qui est en ligne

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