%% papier de Weibull
10 setborder
822 setwidth
576 setheight
10 setfontsize
4.2 7.8 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
100 ln 2000 ln setxrange
%% ######### origine : (ln 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 2000 setxrange
.0000001 .999 setyrange
%% le quadrillage
orange
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) ######### %%
100 .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
[100 200 300 400 500 600 800 1000 2000 3000 4000 6000 8000]
dup {xmark} apply
/xmarkstyle {uctext} def
%% ######### 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
/xscale {} def
7.5 0 stranslate
/ymarkstyle {cltext} def
/fillstyle {blanc fill} def
gsave
1 dict begin
%%%%%%%%% echelle : (1,-1) %%%%%%%%%
-.05 13.9 setyrange
% /xscale {} def
-1 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
0 0 circ
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
[
1
] {setxvar 1 0 1 e div x} apply
ligne
grestore
8 setfontsize
setTimes
(1) -.7 Exp .8 cctext
setSymbol
(b) 0 Exp .9 crtext
|