Le forum du Master ESA économétrie et statistique appliquée - Université d'Orléans

Vous n'êtes pas identifié.

Annonce

Vous êtes sur le forum du master ESA !

Le site du master ESA - description de la formation, notes de cours, contacts... vient de déménager !!!

Venez visiter notre nouveau site : www.master-esa.fr

#1 21-11-2007 10:53:26

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

challenge ! refaites-moi ce graphique !

Voici les données :

Code:

data temp;
input mois tmin_tunis tmax_tunis tmin_hels tmax_hels;
cards;
1 8 16 -4 -1
2 8 17 -6 -3
3 9 19 -4 0
4 11 21 1 5
5 14 26 6 10
6 18 30 11 16
7 21 34 15 20
8 22 34 15 19
9 20 30 11 14
10 17 26 6 9
11 12 21 1 4
12 9 17 -2 0
;run;

avec ces données, vous devez me reconstruire le graphique suivant :

http://www.univ-orleans.fr/deg/masters/ESA/ressources/procgplot2.gif

la police utilisée est chantelli antiqua que vous pouvez télécharger sur www.dafont.com
source des données : http://weather.uk.msn.com/

je ramasse les copies dans quelques jours... (et si personne ne se creuse la tête, vous n'aurez jamais la solution...)

cordialement

SR

Hors ligne

 

#2 21-11-2007 14:39:00

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: challenge ! refaites-moi ce graphique !

voici déjà une première tentative

le résultat :

http://www.univ-orleans.fr/deg/masters/ESA/ressources/procgplot3.gif

les auteurs de cette "chose" ne tarderont pas à venir vous donner leur programme

cordialement

SR

Hors ligne

 

#3 21-11-2007 14:43:48

yo45
New member
Date d'inscription: 21-09-2007
Messages: 4

Re: challenge ! refaites-moi ce graphique !

Voila donc le programme pour obtenir la "choseeeeeeee" pas si mal que ca quand meme!! il doit manquer deux trois petites commandes sur les axes, c'est rien de grave!!!!!!!

Code:

data temp;
input mois tmin_tunis tmax_tunis tmin_hels tmax_hels;
cards;
1 8 16 -4 -1
2 8 17 -6 -3
3 9 19 -4 0
4 11 21 1 5
5 14 26 6 10
6 18 30 11 16
7 21 34 15 20
8 22 34 15 19
9 20 30 11 14
10 17 26 6 9
11 12 21 1 4
12 9 17 -2 0
;run;


data temp;set temp;
rename tmax_hels=Helsinki;
rename tmax_tunis=Tunis;
run;


goptions cback=black ftext='Chantelli Antiqua' cell ;
title1  h=2'comparaison des min et max de temperature' ;
title2  h=2 'donnees mensuelles - Tunis Vs Helsinki';
footnote1  justify=left "source : "  color=blue "http://weather.uk.msn.com/";
footnote2  justify=right "2007";
legend1  value=('' 'Helsinki' '' 'Tunis') shape=bar(6,2) across=4 label=none;
axis1  label='mois' ;
axis2  label=none order=-10 to 35 by 5 ;
symbol i=join;
pattern1 v=solid color=black;
pattern2 v=solid color=yellow;
pattern3 v=solid color=black;
pattern4 v=solid color=white;

proc gplot data=temp;
plot ( tmin_hels Helsinki  tmin_tunis Tunis )*mois /overlay 
noframe areas=4  haxis=axis1 vaxis=axis2 legend=legend1 cframe=black;
run;

Hors ligne

 

#4 21-11-2007 14:48:16

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

je dirais qu'on est pas super loin du votre ! lol

Hors ligne

 

#5 21-11-2007 15:18:54

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: challenge ! refaites-moi ce graphique !

essayer interpol=spline pour lisser un peu les choses...
en option du plot vminor=0 et hminor=0,
centrer un peu le truc en créant des titres invisibles à droite et à gauche via des angle=90 et angle=-90

expliquez moi la GOPTIONS CELL ?

par contre, je préfère ma légende à la votre... (et je n'ai pas employé votre construction de légende mais la commande note)

Code:

goptions ftext='chantelli antiqua/bold' htext=1 cback=black;

symbol1 c=black i=spline v=none;
symbol2 c=black i=spline v=none;
symbol3 c=black i=spline v=none;
symbol4 c=black i=spline v=none;

pattern1 c=black v=solid;
pattern2 c=gold v=solid;
pattern3 c=black v=solid;
pattern4 c=white v=solid;

axis1 order=(-10 to 35 by 5) label=none ;

title1 justify=c height=1.5 'Comparaison des min et max de température'
    justify=c               'données mensuelles - Tunis Vs Helsinki'
    h=3 f='simplex' angle=90 '   '
    h=3 f='simplex' a=-90 '   ';

footnote1 j=l '     Source: ' color=blue 'http://weather.uk.msn.com/' j=r color=white "2007           ";
footnote2 h=3 '  ';

proc gplot data=temp3;
plot (tmin_hels tmax_hels tmin_tunis tmax_tunis   )*mois/
      overlay area=4  vminor=0 hminor=0 vaxis=axis1 noframe ;
note color=gold h=0.05 move=(12cm,1.2cm) box=1 bcolor=gold ''
     color=white h=1 move=(12.7cm,1.1cm) 'Helsinki'
     color=white h=0.05 move=(15cm,1.2cm) box=1 bcolor=white ''
     color=white h=1 move=(15.7cm,1.1cm) 'Tunis'; 
run;

le callage de la legende est un peu pénible... et l'instruction SHAPE quand AREA est spécifié m'était inconnue
quand je vous dit qu'on en apprend tous les jours!

cordialement

SR

Hors ligne

 

#6 21-11-2007 15:39:13

yo45
New member
Date d'inscription: 21-09-2007
Messages: 4

Re: challenge ! refaites-moi ce graphique !

Bon on avait trouvé l'idée pour les titres masqués et pareil pour le lissage!!!
C'est un peu mieux maintenant je pense...
Nous au moins on a pas créer notre propre légende, c'est tp facile!!!!

Code:

data temp;
input mois tmin_tunis tmax_tunis tmin_hels tmax_hels;
cards;
1 8 16 -4 -1
2 8 17 -6 -3
3 9 19 -4 0
4 11 21 1 5
5 14 26 6 10
6 18 30 11 16
7 21 34 15 20
8 22 34 15 19
9 20 30 11 14
10 17 26 6 9
11 12 21 1 4
12 9 17 -2 0
;run;


data temp;set temp;
rename tmax_hels=Helsinki;
rename tmax_tunis=Tunis;
run;

goptions reset=all;
goptions cback=black ftext='Chantelli Antiqua' cell;
title1  h=2'comparaison des min et max de temperature' ;
title2  h=2 'donnees mensuelles - Tunis Vs Helsinki';
title3 h=3 a=-90 color=black 'hhjgouog';
title4 h=3 a=90 color=black 'hhjgouog';
footnote1  justify=left "source : "  color=blue "http://weather.uk.msn.com/";
footnote2  justify=right "2007";
legend1  value=('' 'Helsinki' '' 'Tunis') shape=bar(6,2) across=4 label=none;
axis1  minor=none  ;
axis2  label=NONE order=-10 to 35 by 5 minor=none ;
symbol i=sm;
pattern1 v=solid color=black;
pattern2 v=solid color=gold;
pattern3 v=solid color=black;
pattern4 v=solid color=white;

proc gplot data=temp;
plot ( tmin_hels Helsinki  tmin_tunis Tunis )*mois /overlay hminor=0 vminor=0 
noframe areas=4 haxis=axis1 vaxis=axis2 legend=legend1 cframe=black;
run;

Hors ligne

 

#7 21-11-2007 15:44:25

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

lol

Par contre j'arrive pas à poster le graphique...

Et bien ! ce fut un bon exercice !!!

Hors ligne

 

#8 21-11-2007 15:46:09

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

ahh voila !

http://nsa01.casimages.com/img/2007/11/21//0711210441311654946.jpg

désolé c'est trop gros !

Hors ligne

 

#9 21-11-2007 16:03:58

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: challenge ! refaites-moi ce graphique !

perso, les graphiques sont copié, puis collé dans illustrator pour ensuite être exporter vers le web (illustrator génére des fichier gif de meilleure qualité que SAS) - ensuite, mes privilèges de webmaster jouent, je place ces graphiques sur un serveur et hop la!

vous trouvez cela drôle ?

je vous en prépare un autre

cordialement

SR

Hors ligne

 

#10 21-11-2007 16:29:13

Shtroumf
New member
Date d'inscription: 21-03-2007
Messages: 9

Re: challenge ! refaites-moi ce graphique !

je suis désolé de vous déranger au milieu de vos analyses météorologiques mais j'ai un vrai problème.
Je cherche à identifier grace à une indicatrice les observations qui possèdent dans une variable alphanumérique une chaîne particulière. Avec un exemple ca peut être mieux:

je cherche à identifier ceux qui possèdent la suite 4T dans la variable technique

voici la chaine : technique
2 4T484Y4 2 2 4 4 2 2 2 2

et de façon simple j'avais programmé ca  :

if technique contains '4T'  then top_technique=1 ; else top_technique=0 ;

Bien sur ca marche pas alors comme j'ai vu que ce forum était fréquenté par les plus éminents spécialiste SAS.

Si vous avez une solution hésitez pas

Merci d'avance

PS: j'ai pas crée un topic dédié car je ne connais pas la politique de l'admin (veut il plein de topic ou peu)

Hors ligne

 

#11 21-11-2007 16:33:22

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

esa_sr a écrit:

vous trouvez cela drôle ?

je vous en prépare un autre

oula...
ça sens la grosse marrade !

Hors ligne

 

#12 21-11-2007 16:44:55

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

Shtroumf a écrit:

je cherche à identifier ceux qui possèdent la suite 4T dans la variable technique

voici la chaine : technique
2 4T484Y4 2 2 4 4 2 2 2 2

est ce que le '4T' est toujours au même endroit ?

si c'est le cas :

Code:

data temp ;
input code $ 1-26  ;
cards ;
2 4T484Y4 2 2 4 4 2 2 2 2
2 4K484Y4 2 2 4 4 2 2 2 2
2 4M484Y4 2 2 4 4 2 2 2 2
2 484Y44T 2 2 4 4 2 2 2 2
2 484T4Y4 2 2 4 4 2 2 2 2
;run;

data temp1 ; set temp ;
if substr(code,3,2)='4T' then output temp1;
run;

Code:

proc print data=temp1;run;

Obs              code

1     2 4T484Y4 2 2 4 4 2 2 2 2

c'est peut être trop beau pour être vrai... lol

Hors ligne

 

#13 21-11-2007 16:52:18

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

lol au pire..si le 4T change d'endroit :

Code:

data temp ;
input code $ 1-26  ;
cards ;
2 4T484Y4 2 2 4 4 2 2 2 2
2 4K484Y4 2 2 4 4 2 2 2 2
2 4M484Y4 2 2 4 4 2 2 2 2
2 484Y44T 2 2 4 4 2 2 2 2
2 484T4Y4 2 2 4 4 2 2 2 2
;run;

data temp1 ; set temp ;
do i=1 to 26 ;
if substr(code,i,2)='4T' then output temp1;
end;
run;

Code:

proc print data=temp1 ;run;

Obs              code               i

1     2 4T484Y4 2 2 4 4 2 2 2 2    3
2     2 484Y44T 2 2 4 4 2 2 2 2    8
3     2 484T4Y4 2 2 4 4 2 2 2 2    5

Les trois chaines à '4T' sont bien là !

Hors ligne

 

#14 21-11-2007 17:19:38

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: challenge ! refaites-moi ce graphique !

cela n'aurait pas été plus mal de créer un nouveau topic

m'enfin c'est pas grave

autre version possible (mais qui revient au même)

Code:

data toto;
Shtroumf="2 4T484Y4 2 2 4 4 2 2 2 2";
run;

data toto;set toto;
j=length(Shtroumf);
do i=1 to j-2;
if substr(Shtroumf,i,2)='4T' then toto+1;
end;
drop i j;
run;

cordialement

SR

Hors ligne

 

#15 21-11-2007 19:37:54

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: challenge ! refaites-moi ce graphique !

esa_sr a écrit:

autre version possible (mais qui revient au même)

C'est plus formel, dirais-je...
j'avais pas pensé à utiliser le length, et puis aller jusqu'à la fin de la chaine ne me servait à rien !

j'espère que ça répond à la question du grand shtroumpf tout ça !

Hors ligne

 

#16 22-11-2007 09:44:57

Shtroumf
New member
Date d'inscription: 21-03-2007
Messages: 9

Re: challenge ! refaites-moi ce graphique !

si j'applique le programme de Monsieur ringuede voilà ce que j'obtiens

technique                            top_technique
2 2 2 2 2 2 2 2 2 2 2 2 2    334
2 2 3 3 3 3 3 3 2 2 2 2 2    334
2 2 2 2 2 2 2 2 2 2 2 2 4T    335



Alors que mon but c'est plutot d'avoir ca


technique                            top_technique
2 2 2 2 2 2 2 2 2 2 4T2 2    1
2 2 3 3 3 3 3 3 2 2 2 2 2    0
2 2 2 2 2 2 2 2 2 2 2 2 4T    1

car le but c'est d'identifier les observations qui ont été 4T dans leur chaîne mais sans les exclure ou les mettre dans une autre table donc pas de output.

j'ai tenté d'adapter le programme

data base12;set t.base12;
j=length(top_technique);
do i=1 to j-2;
if substr(top_technique,i,2)='4T' then technique=1;else technique=0;
end;
drop i j;
run;


voilàce qui ressort

2 4T2                                    1
2 4T2 2 2 2 2 2 4T2 2 2 2    0

et voilà ce que j'attends

2 4T2                                    1
2 4T2 2 2 2 2 2 4T2 2 2 2    1



Au fait une collègue vient de me donner la solution ca tient en une ligne...................

je vous la donne plus tard  ( un peu de suspense que diable !! )

Dernière modification par Shtroumf (22-11-2007 09:46:26)

Hors ligne

 

#17 22-11-2007 11:37:51

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: challenge ! refaites-moi ce graphique !

Shtroumf a écrit:

j'ai tenté d'adapter le programme

data base12;set t.base12;
j=length(top_technique);
do i=1 to j-2;
if substr(top_technique,i,2)='4T' then technique=1;else technique=0;
end;
drop i j;
run;

c'est normal que cela ne fonctionne pas puisque technique va être égal à ce que je vais obtenir pour le dernier scan de la dernière valeur de J, soit pour les deux derniers caractères de la chaine. C'est pour cela que je passait pas une variable incrémentée.

celui-ci marche mieux

Code:

data toto;
input x $26.;
cards;
2 2 2 2 2 2 2 2 2 2 4T2 2 
2 2 3 3 3 3 3 3 2 2 2 2 2 
2 2 2 2 2 2 2 2 2 2 2 2 4T
2 4 8 5 4 4T 8 6 9 5 55 4T
;run;

data toto;set toto;
j=length(x);
toto=0;
do i=1 to j-1;
if substr(x,i,2)='4T' then toto+1;
end;
drop i j;
run;

proc print;run;

parce qu'avec une observation, le premier marche bien mais il faut remettre l'incrémentée à 0 avant de refaire tourner la boucle. (qui de plus n'allait pas assez loin...)

sinon, oui, il existe une autre fonction sur chaîne de caractères qui fait ce truc mais j'ai oublié laquelle.

allez, Mr Schtrouph ! un effort !

cordialement

SR

Hors ligne

 

#18 03-12-2007 10:15:44

Shtroumf
New member
Date d'inscription: 21-03-2007
Messages: 9

Re: challenge ! refaites-moi ce graphique !

voici ce qui m'a permis de créer mon indictarice

data toto;
set toto;
if index(top_technique,'4T') then technique=1; else technique=0;
run;

Voilà, je n'ai pas pu poster avant car serveur capout !!!

Hors ligne

 

#19 03-12-2007 10:32:39

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: challenge ! refaites-moi ce graphique !

oh la jolie fonction INDEX !

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

[ Generated in 0.035 seconds, 8 queries executed ]