Here, at the cost of easy .ps plotting, is an alternative:
;+
; flg_id.pro set vertical flag at specified channel for line ID
; ---------- ch=x-axis value for flag <--- is in plot units, so depends
; on what you have defined and
; are currently displaying
; lab=string for flag label
; clr= sys_colour_variable_name
; Syntax: FLG_ID,channel_to_flag,'label',color
;
; colors: !black !red !orange !green !forest !yellow
; !cyan !blue !magenta !purple !gray !white
;-
pro flg_id,ch,lab,clr
;
on_error,2 ; returns to calling procedure on error
;
common gbtplot_common,mystate,xarray
wset,mystate.win_id
;
if (n_params() eq 0) then begin
print,'Error: Insufficient information to execute'
print,'Syntax: FLG_ID,channel_to_flag,label,color
print,' label must be a "string"'
return
endif
;
; get data ranges
;
ymin=mystate.yrange[0] & ymax=mystate.yrange[1] &
yrange = ymax-ymin & yincr=0.025*yrange &
ylab = ymax+yincr
;
plots,ch,ymin
plots,ch,ymax+yincr,/continue,color=clr
xyouts,ch,ymax+yincr+yincr/5,lab,/data,alignment=0.5,color=clr
;
return
end
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here, at the cost of easy .ps plotting, is an alternative:
;+
; flg_id.pro set vertical flag at specified channel for line ID
; ---------- ch=x-axis value for flag <--- is in plot units, so depends
; on what you have defined and
; are currently displaying
; lab=string for flag label
; clr= sys_colour_variable_name
; Syntax: FLG_ID,channel_to_flag,'label',color
;
; colors: !black !red !orange !green !forest !yellow
; !cyan !blue !magenta !purple !gray !white
;-
pro flg_id,ch,lab,clr
;
on_error,2 ; returns to calling procedure on error
;
common gbtplot_common,mystate,xarray
wset,mystate.win_id
;
if (n_params() eq 0) then begin
print,'Error: Insufficient information to execute'
print,'Syntax: FLG_ID,channel_to_flag,label,color
print,' label must be a "string"'
return
endif
;
; get data ranges
;
ymin=mystate.yrange[0] & ymax=mystate.yrange[1] &
yrange = ymax-ymin & yincr=0.025*yrange &
ylab = ymax+yincr
;
plots,ch,ymin
plots,ch,ymax+yincr,/continue,color=clr
xyouts,ch,ymax+yincr+yincr/5,lab,/data,alignment=0.5,color=clr
;
return
end