%% papier de Weibull
10 setborder
234.86 setxunit
576 setheight
10 setfontsize
5.9 9.4 setxrange
-14 2.3 setyrange
%% la fonction pour l'echelle verticale
/F {
   neg 1 add 1 exch .000001 max div ln ln
} def
%% syntaxe : n weibull_vbande -->    %% lignes verticales entre 10^i et 10^(i+1)
/weibull_vbande {
5 dict begin
   /n exch def
   /liste_fine [n 1 sub n log_seq] def
   /liste [n dup 1 add log_seq] def
   /i liste length def
   i 1 sub {
      /k liste i 2 sub get def
      liste_fine {k add svrule} apply
      /i i 1 sub store
   } repeat
end
} def
%% syntaxe : n weibull_hbande --> lignes horizontales entre 100 x 10^(i) et 100 x 10^(i+1)
/weibull_hbande {
5 dict begin
   /n exch def
   /liste_fine [n 3 sub dup 1 add log_seq] def
   /liste [n 2 sub dup 1 add log_seq] def
   /i liste length def
   i 1 sub {
      /k liste i 2 sub get def
      liste_fine {k add shrule} apply
      /i i 1 sub store
   } repeat
end
} def
%%%%%%%%%%%%%%%%%%%%% trace de l'axe horizontal haut %%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%% echelle : (1,1) %%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% numerotation haute
6.4 9.21 setxrange
%% ######### origine : (600, .001)  ######### %%
600 ln .999 F setorigine
.2 setxsubtkstep
1 dict begin
   /xmarkstyle {uctext} def
   traceOx
   .2 setxtkstep
   xticks
   xmarks
   0 xmark
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%% echelle : (ln, F) %%%%%%%%%%%%%%%%%%%%%%%%%%%% 
/xscale {ln} def
/yscale {F} def
600 9.21 Exp setxrange
.0000001 .999 setyrange
%% le quadrillage
.4 setgray
gsave
   masque
   .01 setlinewidth
   %% lignes verticales entre 10^0 et 10^4
   [2 3 4] {weibull_vbande} apply
   %% lignes horizontales entre 100 x 10^(-3) et 100 x 10^(-2)
   [-4 -3 -2 -1 0 1] {weibull_hbande} apply
   
grestore
%% on repasse en noir le grillage simple
noir
.2 setlinewidth
%% grille verticale
[600 700 800 900 3 4 log_seq] {svrule} apply     
%% grille horizontale
[[-6 0 log_seq] aload pop pop .99] {shrule} apply
%% les numerotations gauches, basses et medium
%% pour l'axe vertical, on affiche 100 fois la valeur réelle
/ymarkstyle {
   3 -1 roll
   cvr
   100 mul
   ch cvs
   3 1 roll
   (-5 0) cltext
} def
%% ######### origine : (100, .001)  ######### %%
600 .0000001 setorigine
%% numerotation sur Oy
[
.0001 .0002 .0003 .0005 
.001 .002 .003 .005 
.01 .02 .03 .05 
.1 .2 .3 .5 
1 2 3 5 
10 20 30 50 70 90 99 99.9] {.01 mul ymark} apply
%% ######### origine : (0, 1 - 1/e)  ######### %%
0 1 1 e div sub setorigine  %% on recommence, avec la nouvelle origine,
1 dict begin
%% on veut convertir les valeurs en entiers
/xmark {
   dup xtick
   /Courier findfont .8 fontsize mul scalefont setfont
   dup cvi ch cvs exch 
   Oy xmarkstyle
} def
%% ######### origine : (600, .001)  ######### %%
600 .000001 setorigine
%% numerotation sur Ox (horizontal bas) partie entre 1 et xmax
[600 800 1000 2000 3000 4000 6000 8000]
dup {xmark} apply
%% ######### origine : (0, 1 - 1/e)  ######### %%
0 1 1 e div sub setorigine
{xmark} apply
gsave
   currentlinewidth 2 mul setlinewidth
   traceOx
grestore
%%%%%%%%%%%%%%%%%%%%%%%%%% l'axe vertical median %%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%% echelle : (ln, -1) %%%%%%%%%%%%%%%%%%%%%%%%%%%% 
/yscale {neg} def
/ymarkstyle {cltext} def
/fillstyle {blanc fill} def
gsave
1 dict begin
   %%%%%%%%% echelle : (1,-1) %%%%%%%%% 
%   -1 Exp 0 stranslate
   -.05 13.9 setyrange
   /xscale {} def
   8 0 stranslate
   blanc 
   0 setlinewidth
   -.05 -.05 .05 13.75 frame*
   noir
   traceOy
   .2 setysubtkstep
   yticks
   ysubticks
   ymarks
   0 ymark
end
grestore
%% la rose des beta
/xscale {} def
/yscale {neg} def
9 0 stranslate
gsave
newpath
   0 1 smoveto
   90 180 0 0 1 Cercle_
   0 0 slineto
closepath
clip
.7 setlinewidth
90 180 0 0 .9 Cercle
/xscale {ln} def
[
.6 1 2 3 4 5 8
] {setxvar 1 0 1 e div x} apply
ligne
grestore
8 setfontsize
setTimes
 (0,6) -.92 Exp .6 cctext
 (1) -.7 Exp .8 cctext
 (2) -.5 Exp 1 cctext
 (3) -.35 Exp 1.1 cctext
 (5) -.2 Exp 1.12 cctext
 (8) -.1 Exp 1.13 cctext
setSymbol
 (b) 0 Exp .9 crtext
 
 
 |