Inform me () when using this script or encorporating it in a library.
Source code of oplotline.pro:
;+
; NAME:
; OPLOTLINE
; PURPOSE:
; Plot a straight line on a existing plot
; CALLING SEQUENCE:
; oplotline, a, b[,linestyle=linestyle][,/vertical][,thick=thick][,color=color]
; EXAMPLES:
; oplotline, 1, 0
; plots a line according to the equation y = x
; oplotline, 1, 0, /vert
; plots a line according to the equation y = 0
; oplotline, a, b
; plots lines according to the contents of the vectors,
; where each combination is gives a line y = a*x + b
; KEYWORDS:
; a = slope of the line
; b = intersection with the y-axis
; linestyle = style of the line
; MODIFICATION HISTORY:
; 08/09/2004 Written by Eduard Westra
; 15/12/2004 EW Added the colour inheritance
; 11/03/2005 EW Added keyword xrange
; 12/02/2006 EW Added the linethickness inheritance
; 21/02/2006 EW Updated header
;-
PRO oplotline, a, b, linestyle=linestyle, thick=thick, color=color, xrange=xrange, vertical=vertical, help=help
IF (KEYWORD_SET(HELP)) THEN BEGIN & doc_library,'oplotline' & RETURN & ENDIF
IF (N_ELEMENTS(a) NE N_ELEMENTS(b)) THEN BEGIN MESSAGE,/inform, 'Unequal input array sizes' & RETURN & ENDIF
IF (N_ELEMENTS(linestyle) NE 0) AND (N_ELEMENTS(linestyle) NE 1) AND (N_ELEMENTS(linestyle) NE N_ELEMENTS(a)) THEN BEGIN MESSAGE, /inform,'Unequal linestyle array size to input' & RETURN & ENDIF
IF (N_ELEMENTS(thick) NE 0) AND (N_ELEMENTS(thick) NE 1) AND (N_ELEMENTS(thick) NE N_ELEMENTS(a)) THEN BEGIN MESSAGE, /inform,'Unequal thick array size to input' & RETURN & ENDIF
;IF (N_ELEMENTS(vertical) NE 0) AND (N_ELEMENTS(vertical) NE 1) AND (N_ELEMENTS(vertical) NE N_ELEMENTS(a)) THEN BEGIN MESSAGE, /inform,'Unequal thick array size to input' & RETURN & ENDIF
IF NOT KEYWORD_SET(vertical) THEN vertical = 0
IF (N_ELEMENTS(linestyle) EQ 0) THEN linestyle = 0
IF (N_ELEMENTS(color) EQ 0) THEN color = !P.COLOR
IF (N_ELEMENTS(thick) EQ 0) THEN thick = 1.
IF (KEYWORD_SET(xrange)) THEN BEGIN
IF (N_ELEMENTS(xrange) NE 2) THEN BEGIN
MESSAGE,/inform, 'Invalid xrange'
ENDIF
x1 = MIN(xrange)
x2 = MAX(xrange)
ENDIF ELSE BEGIN
IF vertical NE 0 THEN BEGIN
x1 = b
x2 = b
ENDIF ELSE BEGIN
x1 = !x.crange[0]
x2 = !x.crange[1]
ENDELSE
ENDELSE
FOR i=0,N_ELEMENTS(a)-1 DO BEGIN
IF vertical NE 0 THEN BEGIN
x1 = b[i]
x2 = b[i]
y1 = !y.crange[0]
y2 = !y.crange[1]
ENDIF ELSE BEGIN
y1 = a[i]*x1+b[i]
y2 = a[i]*x2+b[i]
ENDELSE
style = (N_ELEMENTS(linestyle) GT 1 ? linestyle[i] : linestyle)
col = (N_ELEMENTS(color) GT 1 ? color[i] : color)
th = (N_ELEMENTS(thick) GT 1 ? thick[i] : thick)
oplot, [x1, x2], [y1, y2], linestyle=style, color=col, thick=th
ENDFOR
END