/usr/share/gnudatalanguage/astrolib/plotsym.pro is in gdl-astrolib 2018.02.16+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | pro plotsym, psym, psize, FILL=fill,thick=thick,Color = color
;+
; NAME:
; PLOTSYM
; PURPOSE:
; Define useful plotting symbols not in the standard !PSYM definitions.
; EXPLANATION:
; After a symbol has been defined with PLOTSYM, a plotting command should
; follow with either PSYM = 8 or !P.PSYM = 8 (see USERSYM)
;
; For additional rotationally symmetric plotting symbols, see VSYM.PRO
; Also see CGSYMCAT in the/coyote directory.
; CALLING SEQUENCE:
; PLOTSYM, PSYM,[ PSIZE, /FILL, THICK=, COLOR=]
;
; INPUTS:
; PSYM - The following integer values of PSYM will create the
; corresponding plot symbols
; 0 - circle
; 1 - downward arrow (upper limit), base of arrow begins at plot value value
; 2 - upward arrow (lower limt)
; 3 - 5 pointed star
; 4 - triangle
; 5 - upside down triangle
; 6 - left pointing arrow
; 7 - right pointing arrow
; 8 - square
;
; Arrows are defined such that their base begins at their origin.
;
; OPTIONAL INPUTS:
; PSIZE - Size of the plotting symbol in multiples of the default size
; (default PSIZE=1). Does not need to be an integer
;
; OPTIONAL INPUT KEYWORD:
; FILL - Parameter indicating whether to fill the symbol (see USERSYM)
; The default is 0, unfilled symbol. Does not affect arrows
; or character symbols.
; THICK - Thickness of unfilled symbols. Default is 1.
; COLOR - Color of the symbols, Default is !P.color
; OUTPUTS:
; None
;
; EXAMPLES:
; Plot Y vs. X with filled stars as the symbol, twice the default size
; IDL> PLOTSYM, 3 ,2, /FILL ;Plotting symbol is a filled star,
; ;twice default size
; IDL> PLOT,X,Y,PSYM=8 ;Set PSYM = 8 to get star symbol
;
; Now plot Y vs. X with an open circle as the symbol
;
; IDL> PLOTSYM, 0 ;Plotting symbol is a circle
; IDL> PLOT,X,Y,PSYM=8
;
; METHOD:
; Appropriate X,Y vectors are used to define the symbol and passed to the
; USERSYM command.
;
; REVISION HISTORY
; Written W. Landsman June 1992
; 18-JAN-1996 Added a square symbol, HCW.
; 98Aug20 Added keyword thick parameter - RCB.
; April 2001 Added COLOR keyword WBL
;-
On_error,2
if N_elements(psym) LT 1 then begin
print,'Syntax - PLOTSYM, psym, [ size, /FILL, THICK= ]'
print,' PSYM values 0 - circle, 1 - down arrow, 2 - up arrow, 3 - star'
print,' 4 - triangle, 5 - upside down triangle, 6 - left arrow'
print,' 7 - right arrow, 8 - square'
return
endif
if ( N_elements(psize) LT 1 ) then psize = 1 else psize = psize > 0.1
if ~keyword_set(FILL) then fill = 0
if ~keyword_set(thick) then thick=1
case psym of
0: begin ;Circle
ang = 2*!PI*findgen(49)/48. ;Get position every 5 deg
xarr = psize*cos(ang) & yarr = psize*sin(ang)
end
1: begin ;Down arrow
xarr = [0,0,.5,0,-.5]*psize
yarr = [0,-2,-1.4,-2,-1.4]*psize
fill = 0
end
2: begin ;Up arrow
xarr = [0,0,.5,0,-.5]*psize
yarr = [0,2,1.4,2,1.4]*psize
fill = 0
end
3: begin ;Star
ang = (360. / 10 * findgen(11) + 90) / !RADEG ;star angles every 36 deg
r = ang*0
r[2*indgen(6)] = 1.
cp5 = cos(!pi/5.)
r1 = 2. * cp5 - 1. / cp5
r[2*indgen(5)+1] = r1
r = r * psize / sqrt(!pi/4.) * 2. / (1.+r1)
xarr = r * cos(ang) & yarr = r * sin(ang)
end
4: begin ;Triangle
xarr = [-1,0,1,-1]*psize
yarr = [-1,1,-1,-1]*psize
end
5: begin ;Upside down triangle
xarr = [-1, 0, 1, -1]*psize
yarr = [ 1,-1, 1, 1]*psize
end
6: begin ;Left pointing arrow
yarr = [0, 0, 0.5, 0, -.5]*psize
xarr = [0,-2,-1.4,-2,-1.4]*psize
fill = 0
end
7: begin ;Left pointing arrow
yarr = [ 0, 0, 0.5, 0, -.5] * psize
xarr = [ 0, 2, 1.4, 2, 1.4] * psize
fill = 0
end
8: begin ;Square
xarr = [-1,-1,1, 1,-1] * psize
yarr = [-1, 1,1,-1,-1] * psize
end
else: message,'Unknown plotting symbol value of '+strtrim(psym,2)
endcase
if N_elements(color) GT 0 then $
usersym, xarr, yarr, FILL = fill,thick=thick, color = color else $
usersym, xarr, yarr, FILL = fill,thick=thick
return
end
|