%% papier de Weibull
10 setborder
100 setxunit
576 setheight
10 setfontsize
4.1 12.32 setxrange
-7.3 2.3 setyrange
%% la fonction pour l'echelle verticale
/F {
neg 1 add 1 exch .0001 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
4.6 12 setxrange
%% ######### origine : (100, .001) ######### %%
100 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
100 12 Exp setxrange
.001 .999 setyrange
%% le quadrillage
orange
gsave
masque
.01 setlinewidth
%% lignes verticales entre 10^0 et 10^2
[2 3 4 5] {weibull_vbande} apply
%% lignes horizontales entre 100 x 10^(-3) et 100 x 10^(-2)
[-1 0 1] {weibull_hbande} apply
grestore
%% on repasse en noir le grillage simple
noir
.2 setlinewidth
%% grille verticale
[2 5 log_seq] {svrule} apply
%% grille horizontale
[[-3 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) ######### %%
100 .001 setorigine
%% numerotation sur Oy
[.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 : (100, .001) ######### %%
100 .001 setorigine
%% numerotation sur Ox (horizontal bas) partie entre 1 et xmax
[2 3 log_seq] %% graduations entre 10^(1) et 10^5
{pop exch pop} 9 9 Apply %% on supprimes les graduations 7 et 9
dup {xmark} apply %% on numerote
[1000 2000 3000 4000 6000 8000 20000]
dup {xmark} apply
%% ######### origine : (0, 1 - 1/e) ######### %%
0 1 1 e div sub setorigine
{xmark} apply
{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 6.9 setyrange
%% /xscale {} def
%% blanc
%% 0 setlinewidth
%% -.05 -.05 .05 6.9 frame*
%% noir
%% traceOy
%% .2 setysubtkstep
%% yticks
%% ysubticks
%% ymarks
%% 0 ymark
%% end
%% grestore
%% la rose des beta
/xscale {} def
/yscale {neg} def
11 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
[
.3 .6 1 2 3 4 5 8
] {setxvar 1 0 1 e div x} apply
ligne
grestore
8 setfontsize
setTimes
(0,3) -1.05 Exp .3 cctext
(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
|