;------------------------------------------------------------ ;------------------------------------------------------------ ;------------------------------------------------------------ ;+ ; NAME:label ; ; PURPOSE:permet de choisir le stype de label que l'on veut utiliser ; lors d'un contour ; ; CATEGORY:graphique ; ; CALLING SEQUENCE:pro label,cas,min,max,ncontour,level_z2d ; ; INPUTS: ; cas=numero du type de label que l'on veut tracer ; min et max = valeures min et max entre lesquelles on veut faire ; des contours ; ; KEYWORD PARAMETERS: ; ; INTERVALLE: valeur d'un intervalle entre deux isolignes. par defaut ; est calcule pour tracer 20 isolighnes. Dans tous les cas ce not cle ; doit etre retourne pour pouvoir avoir une belle legende. Si les ; niveaux ne comportent pas d''intevalle regulier, le mettre a -1 ; ; NLEVEL: nombre de contours a dessiner. par defaut =20. actif si ; LABEL=0 ou nest pas specifie. ; ; OUTPUTS: ; ncontour=nombre de contour a tracer ; level_z2d=vecteur contenant les valeurs des contours que l'on trace ; (rq couleur est definit ds le common: ; c'est un vecteur contenant le numero des couleurs qui serviront a ; remplir entre les contours) ; ; COMMON BLOCKS: ; common.pro ; ; SIDE EFFECTS: ; ; RESTRICTIONS: ; ; EXAMPLE: ; ; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr) ; 7/5/98 ;- ;------------------------------------------------------------ ;------------------------------------------------------------ ;------------------------------------------------------------ pro label,cas,min,max,ncontour,level_z2d,NLEVEL=nlevel $ ,INTERVALLE=intervalle, STRICTFILL = strictfill @common if !d.name EQ 'PS' OR !d.name EQ 'Z' then BEGIN old_dname = !d.name thisOS = !VERSION.OS_FAMILY thisOS = STRMID(thisOS, 0, 3) thisOS = STRUPCASE(thisOS) CASE thisOS of 'MAC': SET_PLOT, thisOS 'WIN': SET_PLOT, thisOS ELSE: SET_PLOT, 'X' ENDCASE !p.BACKGROUND=(!d.n_colors-1) < 255 !p.color=0 if !d.n_colors gt 256 then !p.background='ffffff'x ncoul = !D.n_Colors < 256 set_plot,old_dname ENDIF ELSE ncoul = !D.n_Colors < 256 case cas of 0: begin ;nlevel label entre le min et le max if keyword_set(Nlevel) eq 0 then ncontour=20 else ncontour=nlevel ncontour = 1 > ncontour level_z2d = min + (max-min)*(findgen(Ncontour)/Ncontour) couleur = ncoul*(findgen(Ncontour))/Ncontour+ncoul/(2*ncontour) intervalle = level_z2d[1]-level_z2d[0] end 1: begin ;un certain nombre de label en partant du min jusqu'au plus pres de max avec ; un pas fixe par intervalle ncontour = fix((max-min)/intervalle) ncontour = 1 > ncontour level_z2d = min + intervalle*findgen(Ncontour) couleur = ncoul*(findgen(Ncontour))/Ncontour+ncoul/(2*ncontour) max=level_z2d(Ncontour-1)+intervalle end ; label pour faire les memes sss que dessier 2: begin lct, 63, file = 'palette.tbl' level_z2d = [20, 25, 30, 31, 32, 33, 33.5, 34+.25*findgen(16)] ncontour=23 couleur = findgen(23)+1 masx = 37.75 intervalle = -1 return end 3: begin ; lecture intervalles + palette dans fichier GMT label_gmt, min, max, intervalle, ncoul, ncontour, level_z2d, couleur end else: begin ras = report('Le numero de label demande n''existe pas', /error) end ENDCASE if keyword_set(strictfill) then begin ncontour = ncontour+1 level_z2d = [level_z2d, max] couleur = [couleur, ncoul-1] endif return end