IDL, short for Interactive Data Language, is a programming language used for data analysis. It is popular in particular areas of science, such as astronomy, and is hugely powerful and versatile. That said, getting IDL to produce plots and graphics to look exactly how you want them to look is often tricky — especially when you want labels that include arcane units, such as the Angstrom (Å), or when you want to use super- or sub-script.
Here is a collection of information that may be useful to astronomers (etc.) who use IDL.
!3 |
Simplex Roman (default) |
!12 |
Simplex Script |
!4 |
Simplex Greek |
!13 |
Complex Script |
!5 |
Duplex Roman |
!14 |
Gothic Italian |
!6 |
Complex Roman |
!15 |
Gothic German |
!7 |
Complex Greek |
!16 |
Cyrillic |
!8 |
Complex Italian |
!17 |
Triplex Roman |
!9 |
Math Font |
!18 |
Triplex Italian |
!10 |
Special Characters |
!20 |
Misc |
!11 |
Gothic English |
!X |
Revert to entry font |
>plot,(x,)y,psym=n
0 |
joined up |
1 |
Plus Sign (+) |
2 |
Asterisk (*) |
3 |
Dot (.) |
4 |
Diamond |
5 |
Triangle |
6 |
Square |
7 |
Cross (x) |
8 |
User Defined (see USERSYM procedure) |
9 |
Undefined |
10 |
Histogram mode. Horizontal and vertical lines connect the plotted points, as opposed to the normal method of connecting points with straight lines. |
To get non-default plot symbols, use PLOTSYM:
>plotsym, psym, [psize, /fill]
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 |
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 (custom) |
9 |
Undefined |
ANGSTROM:-
angstrom = '!6!sA!r!u!9 %!6!n'
(to create the symbol)
angstrom = '!3' + STRING(197B) + '!X'
(to use octal notation)
then just use it like…
XYOUTS, 0.5, 0.5, /Normal, CharSize=2.0, 'Symbol: ' + angstrom
or for e.g. plot title like “Wavelength (A)”
'Wavelength (!3' + STRING(197B) + '!X)'
SOLAR SYMBOL:-
!D!9n!3!N
GREEK LETTERS:-
!7 is the Greek character set and !3 is the standard character set.
e.g. H beta is H!7b!3
SUPERSCRIPT/SUBSCRIPT:-
!E or !U = superscript (bold one is better)
!I or !D = subscript
!N = back to normal
>LoadCT,n
0 |
B-W LINEAR |
14 |
STEPS |
28 |
Hardcandy |
1 |
BLUE/WHITE |
15 |
STERN SPECIAL |
29 |
Nature |
2 |
GRN-RED-BLU-WHT |
16 |
Haze |
30 |
Ocean |
3 |
RED TEMPERATURE |
17 |
Blue – Pastel – Red |
31 |
Peppermint |
4 |
BLUE/GREEN/RED/YELLOW |
18 |
Pastels |
32 |
Plasma |
5 |
STD GAMMA-II |
19 |
Hue Sat Lightness 1 |
33 |
Blue-Red |
6 |
PRISM |
20 |
Hue Sat Lightness 2 |
34 |
Rainbow |
7 |
RED-PURPLE |
21 |
Hue Sat Value 1 |
35 |
Blue Waves |
8 |
GREEN/WHITE LINEAR |
22 |
Hue Sat Value 2 |
36 |
Volcano |
9 |
GRN/WHT EXPONENTIAL |
23 |
Purple-Red + Stripes |
37 |
Waves |
10 |
GREEN-PINK |
24 |
Beach |
38 |
Rainbow18 |
11 |
BLUE-RED |
25 |
Mac Style |
39 |
Rainbow + white |
12 |
16 LEVEL |
26 |
Eos A |
40 |
Rainbow + black |
13 |
RAINBOW |
27 |
Eos B |
|
|
the system variable !DTOR converts degrees to radians when multiplying, for example:
IDL> print, sin(45.0*!DTOR)
The command TVLCT,R,G,B,\GET
loads the current color table into the variables R, G and B. You can then manipulate these variables to change the color table. For example, the following code segment will reverse the color table.
IDL> LOADCT,3 ;Load the Red Temperature color table
IDL> TVLCT,R,G,B,/GET ;Put the table into IDL variables
IDL> RR=REVERSE(R)
IDL> GG=REVERSE(G)
IDL> BB=REVERSE(B)
IDL> TVLCT,RR,GG,BB ;Load the reversed colors
!3 |
Simplex Roman (default) |
!12 |
Simplex Script |
!4 |
Simplex Greek |
!13 |
Complex Script |
!5 |
Duplex Roman |
!14 |
Gothic Italian |
!6 |
Complex Roman |
!15 |
Gothic German |
!7 |
Complex Greek |
!16 |
Cyrillic |
!8 |
Complex Italian |
!17 |
Triplex Roman |
!9 |
Math Font |
!18 |
Triplex Italian |
!10 |
Special Characters |
!20 |
Misc |
!11 |
Gothic English |
!X |
Revert to entry font |
>plot,(x,)y,psym=n
0 |
joined up |
1 |
Plus Sign (+) |
2 |
Asterisk (*) |
3 |
Dot (.) |
4 |
Diamond |
5 |
Triangle |
6 |
Square |
7 |
Cross (x) |
8 |
User Defined (see USERSYM procedure) |
9 |
Undefined |
10 |
Histogram mode. Horizontal and vertical lines connect the plotted points, as opposed to the normal method of connecting points with straight lines. |
To get non-default plot symbols, use PLOTSYM:
>plotsym, psym, [psize, /fill]
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 |
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 (custom) |
9 |
Undefined |
ANGSTROM:-
angstrom = '!6!sA!r!u!9 %!6!n' (to create the symbol)
angstrom = '!3' + STRING(197B) + '!X' (to use octal notation)
then just use it like…
XYOUTS, 0.5, 0.5, /Normal, CharSize=2.0, 'Symbol: ' + angstrom
or for e.g. plot title like “Wavelength (A)”
'Wavelength (!3' + STRING(197B) + '!X)'
SOLAR SYMBOL:-
!D!9n!3!N (thanks to Magda for finding that)
GREEK LETTERS:-
!7 is the Greek character set and !3 is the standard character set.
e.g. H beta is H!7b!3
SUPERSCRIPT/SUBSCRIPT:-
!E or !U = superscript (bold one is better)
!I or !D = subscript
!N = back to normal
>LoadCT,n
0 |
B-W LINEAR |
14 |
STEPS |
28 |
Hardcandy |
1 |
BLUE/WHITE |
15 |
STERN SPECIAL |
29 |
Nature |
2 |
GRN-RED-BLU-WHT |
16 |
Haze |
30 |
Ocean |
3 |
RED TEMPERATURE |
17 |
Blue – Pastel – Red |
31 |
Peppermint |
4 |
BLUE/GREEN/RED/YELLOW |
18 |
Pastels |
32 |
Plasma |
5 |
STD GAMMA-II |
19 |
Hue Sat Lightness 1 |
33 |
Blue-Red |
6 |
PRISM |
20 |
Hue Sat Lightness 2 |
34 |
Rainbow |
7 |
RED-PURPLE |
21 |
Hue Sat Value 1 |
35 |
Blue Waves |
8 |
GREEN/WHITE LINEAR |
22 |
Hue Sat Value 2 |
36 |
Volcano |
9 |
GRN/WHT EXPONENTIAL |
23 |
Purple-Red + Stripes |
37 |
Waves |
10 |
GREEN-PINK |
24 |
Beach |
38 |
Rainbow18 |
11 |
BLUE-RED |
25 |
Mac Style |
39 |
Rainbow + white |
12 |
16 LEVEL |
26 |
Eos A |
40 |
Rainbow + black |
13 |
RAINBOW |
27 |
Eos B |
|
|
Link to see Examples
the system variable !DTOR converts degrees to radians when multiplying, for example:
IDL> print, sin(45.0*!DTOR)
The command TVLCT,R,G,B,\GET loads the current color table into the variables R, G and B. You can then manipulate these variables to change the color table. For example, the following code segment will reverse the color table.
IDL> LOADCT,3 ;Load the Red Temperature color table
IDL> TVLCT,R,G,B,/GET ;Put the table into IDL variables
IDL> RR=REVERSE(R)
IDL> GG=REVERSE(G)
IDL> BB=REVERSE(B)
IDL> TVLCT,RR,GG,BB ;Load the reversed colors |
|
|
|