Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Diagramme circulaire et pourcentage


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Diagramme circulaire et pourcentage
    Bonjour, alors voilà mon problème. J'aimerai faire un diagramme circulaire mais comme vous pouvez voir sur le screen les parts du diagramme ne sont pas bonnes et ne sont pas en fonction de la fréquence de mon tableau.
    Voici le code:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    DATA sexe;
     
    Label Femme="Femme" Homme="Homme" Frequence="Fréquence";
    Input Sexe $ Nombre $ Frequence $ ;
    datalines;
    Femme 610 0,715
    Autre 9 0,011
    Homme 234 0,274
    ;
     
    Run;
     
    DATA sexe;
    RETAIN Sexe Nombre Frequence;
    SET sexe;
    RUN;
    Proc print NOOBS DATA = sexe;
    title j=center color=red underlin=1 "Hommes et Femmes ayant participé à ce sondage";
     
    proc template;
    define statgraph SASStudio.pie;
      begingraph;
       entrytitle "Hommes et Femmes ayant participé à ce sondage";
        layout region;
          piechart category=sexe  / Stat=pct ;
        endlayout;
      endgraph;
    end;
    run;
    ods graphics  / reset width=6.4in height=4.9in
    	imagemap;
    proc sgrender template=SASStudio.pie data=sexe;
    run;
     
    ods graphics / reset;


    et le screen de ce que ça rend:



    Merci de votre aide

  2. #2
    Membre éprouvé
    piechart
    Bonjour,

    C'est piechart qui calcule les pourcentages. Votre table sexe a une ligne "Femme", une ligne "Homme", une ligne "Autre" donc c'est normal que les pourcentages soient de 33%.

    Par ailleurs, même si ça n'aurait rien changé sur votre graphique, vous avez créé les variables Nombre et Fréquence en tant que texte.

    Cordialement,

  3. #3
    Candidat au Club
    Citation Envoyé par mgdondon Voir le message
    Bonjour,

    C'est piechart qui calcule les pourcentages. Votre table sexe a une ligne "Femme", une ligne "Homme", une ligne "Autre" donc c'est normal que les pourcentages soient de 33%.

    Par ailleurs, même si ça n'aurait rien changé sur votre graphique, vous avez créé les variables Nombre et Fréquence en tant que texte.

    Cordialement,
    Merci de m'avoir répondu.
    J'ai effectivement beaucoup vu "piechart" dans mes recherche mais ma professeur ne m'a montrer comment l'utiliser dans un code et je n'ai aucune réponse d'elle depuis 1 semaine..
    Pouvez vous m'éclairer sur comment et où utiliser cette fonction ? (exemple de code si possible)
    Merci beaucoup !

  4. #4
    Membre éprouvé
    Bonjour,

    Il faut partir de votre table de base, pas d'un tableau de fréquence.

    Je vous invite à regarder des exemples de programme avec la proc gchart et celui avec l'instruction piechart.

    Pensez à regarder comment se présentent les tables utilisées.

    Cordialement,

  5. #5
    Candidat au Club
    Oui alors je possède la version étudiante de SAS donc la prog gchart ne fonctionne pas sur cette version. C'est pourquoi ma prof m'a dit d'utiliser un template. Sinon elle m'a dit d'extraire le fichier form (car les données viennent d'un google form mais je les ai rentré manuellement en tableau) sauf que je ne sais pas comment faire..

  6. #6
    Candidat au Club
    J'ai bien rereregardé le code avec le piechart mais il n'y a pas le début du code avec la table donc je ne vois pas comment faire et je ne peux pas utiliser proc gchart car j'ai la version étudiante de SAS

  7. #7
    Membre éprouvé
    Bonjour,

    Le code donné en exemple est le suivant :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    proc template;
    define statgraph simplepie;
      begingraph;
        entrytitle "Car Models by Origin";
        layout region;
          piechart category=origin / datalabellocation=outside;
        endlayout;
      endgraph;
    end;
    run;
    proc sgrender data=sashelp.cars 
                  template=simplepie;
    run;


    Le table utilisée est la table sashelp.cars...

    Cordialement,

  8. #8
    Candidat au Club
    Oui j'ai vu ce code mais je cherche le code de la table sashelp.cars justement pour voir comment mettre mes valeurs dans le tableau en variable

  9. #9
    Membre éprouvé
    Diagramme circulaire et pourcentage
    Regardez dans l'onglet "Bibliothèques".

    Vous pouvez aussi utiliser la proc print.

    Cordialement,

  10. #10
    Candidat au Club
    Merci mais j'ai regardé et le code n'aide absolument pas..
    Le voici:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROC SQL;
    CREATE TABLE WORK.query AS
    SELECT Make , Model , 'Type'n , Origin , DriveTrain , MSRP , Invoice , EngineSize , Cylinders , Horsepower , MPG_City , MPG_Highway , Weight , Wheelbase , 'Length'n FROM SASHELP.CARS;
    RUN;
    QUIT;
     
    PROC DATASETS NOLIST NODETAILS;
    CONTENTS DATA=WORK.query OUT=WORK.details;
    RUN;
     
    PROC PRINT DATA=WORK.details;
    RUN;

  11. #11
    Membre éprouvé
    Diagramme circulaire et pourcentage
    Je n'utilise pas RStudio et l'onglet "Bibliothèques" ne correspond pas à ce que je pensais.

    Vous pouvez aussi utiliser la proc print pour voir le contenu de la table sashelp.cars.

    Cordialement,

  12. #12
    Candidat au Club
    Oui mais je ne vois pas le code et j'aimerai m'en inspiré. Au final ma prof m'a dit d'exporter en .csv mon fichier excel avec le sondage. Ce que j'ai fais donc mais je ne sais pas du tout comment faire pour faire mon camembert avec le pourcentage homme/femme/autre. J'ai une colonne avec les réponses mais sans le code du sashelp.cars je n'ai rien comme exemple pour m'aider.
    Voici mon code désormais:
    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
    18
    19
    20
    21
    22
    23
    PROC IMPORT DATAFILE="/folders/myshortcuts/Mesdossiers/sondage.csv" OUT=importCSV REPLACE dbms=CSV;
    delimiter=';';
    RUN;
     
    Proc print NOOBS DATA = sexe;
    title j=center color=red underlin=1 "Hommes et Femmes ayant participé à ce sondage";
     
    proc template;
    define statgraph SASStudio.pie;
      begingraph;
       entrytitle "Hommes et Femmes ayant participé à ce sondage";
        layout region;
          piechart category=VAR2 / Stat=pct;
        endlayout;
      endgraph;
    end;
    run;
    ods graphics / reset width=6.4in height=4.9in
    	imagemap;
    proc sgrender template=SASStudio.pie data=sondage;
    run;
     
    ods graphics / reset;


    Comme tu peux le remarquer la colonne qui m’intéresse est VAR2 puisqu'elle est composée des réponses que je veux. Mais je suppose que je dois créer un DATA et donc une table avant mais je n'y comprend rien je n'y arrive pas sans exemple de code...

  13. #13
    Membre éprouvé
    Diagramme circulaire et pourcentage
    Bonjour,

    Vous avez tout le code dont vous avez besoin. Faites seulement attention à ce que fait chaque étape...

    Cordialement,

  14. #14
    Candidat au Club
    Citation Envoyé par mgdondon Voir le message
    Bonjour,

    Vous avez tout le code dont vous avez besoin. Faites seulement attention à ce que fait chaque étape...

    Cordialement,
    Désolé mais je ne vois pas du tout..