Вы находитесь на странице: 1из 39

Introduction to G NUPLOT

Katharina Fierlinger1,2
with Christian Alig1 , Klaus Dolag1 and Tadziu Hoffmann1

1
Universitätssternwarte München, Scheinerstr. 1, 81679 Munich, Germany
2
Excellence Cluster Universe, Boltzmannstr. 2, 85748 Garching, Germany
katharina.fierlinger@universe-cluster.de

7th & 8th of November 2013

Introduction to G NUPLOT 1
katharina@fierli:∼$ gnuplot

GNUPLOT
Version 4.4 patchlevel 3
last modified March 2011
System: Linux 3.2.0-24-generic

Copyright (C) 1986-1993, 1998, 2004, 2007-2010


Thomas Williams, Colin Kelley and many others

gnuplot home: http://www.gnuplot.info


faq, bugs, etc: type ”help seeking-assistance”
immediate help: type ”help”
plot window: hit ’h’

Terminal type set to ’wxt’


gnuplot>
Introduction to G NUPLOT 2
Basics

G NUPLOT is a freely distributed command-line based interactive


plotting program
• installing G NUPLOT
Windows get .exe from sourceforge.net/projects/gnuplot/files
Mac get .tar.gz from sourceforge.net/projects/gnuplot/files
open shell, go to download directory, type ”configure”, ”make”,
”sudo make install”
Linux use package management system
• starting G NUPLOT
Windows GUI
Linux, Mac open shell, type ”gnuplot”
• closing G NUPLOT
Windows GUI
Linux, Mac type ”exit” or ”quit”

Introduction to G NUPLOT 3
katharina@fierli:∼$ gnuplot

GNUPLOT
Version 4.4 patchlevel 3
last modified March 2011
System: Linux 3.2.0-24-generic

Copyright (C) 1986-1993, 1998, 2004, 2007-2010


Thomas Williams, Colin Kelley and many others

gnuplot home: http://www.gnuplot.info


faq, bugs, etc: type ”help seeking-assistance”
immediate help: type ”help”
plot window: hit ’h’

Terminal type set to ’wxt’


gnuplot>
Introduction to G NUPLOT 4
Checking gnuplot on your laptop

Assignment 0
• Go to a command line.
• Start gnuplot by typing gnuplot .
• Check which gnuplot version you have. The loop syntax
changed between the versions 4.4 and 4.6.
• Check which terminals you have installed by typing
set terminal . You want (at least) wxt, png, latex and tikz.
If you don’t have them, install the missing packages.
• You can check your current terminal with show terminal
• If you type test, gnuplot will show you the line types and point
types available for your current terminal type.
• Check if you have ImageMagick installed by typing !convert .

Introduction to G NUPLOT 5
G NUPLOT syntax basics
• G NUPLOT can display the manuals for its commands
e.g. type help plot to get information on the plot command
• commands can be shortened
e.g. rep instead of replot
or p instead of plot
• reset restores the defaults
• If you want to use more than one G NUPLOT command in one
line, you have to separate the commands by ;
• G NUPLOT comments start with #
• shell commands (e.g. vi) in G NUPLOT start with !
• file names have to be enclosed in single or double quotes

Introduction to G NUPLOT 6
Simple example
To plot a sine curve open G NUPLOT and type: 1
0.8 f(x)
0.6 f(2x)
• f(x) = sin(x) # define a function 0.4
0.2
0
• plot f(x) # plot this function -0.2
-0.4
-0.6
• replot f(2*x) # plot another function -0.8
-1
-10 -5 0 5 10
G NUPLOT will open a window with your plot. 1 f(x)
The curves will not look smooth. 0.5
f(2x)

Fix this by increasing the sampling rate: 0.0


• set samples 200 # sampling rate -0.5

• set ytics 0.5; set mytics 5 -1.0


-10 -5 0 5 10
• rep # update plot 1
sin(2x)
sin(x)
Now let’s set the x-range and x-tick-labels 0.5

0.0
• set xrange [-pi:pi] # x range
-0.5
• set xtics ("-pi" -pi, "-pi/2" -pi/2,
-1.0
0, "pi/2" pi/2, "pi" pi) -pi -pi/2 0 pi/2 pi

Introduction to G NUPLOT 7
Scripting

For your scientific work you will prefer scripts.


Store the commands in a text file.
myscript.gnuplot
set term wxt # s e l e c t d i s p l a y type
set y t i c s 0 . 5 # define distance of labeled
# t i c k marks on t h e y−a x i s
set mytics 5 # number o f s m a l l
# t i c k marks on t h e y−a x i s
set xrange [− p i : p i ] # s e t x range o f t h e p l o t
set x t i c s ( ”−p i ” −p i , ”−p i / 2 ” −p i / 2 , 0 , ” p i / 2 ” p i / 2 , ” p i ” p i ) # custom l a b e l s
set samples 200 # i n c r e a s e sampling r a t e
set key a t −p i / 8 , 0 . 8 i n v e r t samplen 2 # p l a c e and f o r m a t
# key o f symbols
f ( x ) = sin ( x ) # define a function
p l o t f ( x ) t ” s i n ( x ) ” , f (2∗ x ) t ” s i n ( 2 x ) ” # p l o t two f u n c t i o n s
pause −1 ” h i t ENTER t o e x i t s c r i p t ” # don ’ t c l o s e g n u p l o t

load this script in G NUPLOT by typing either


• gnuplot myscript.gnuplot on the command-line
• load ’myscript.gnuplot’ in G NUPLOT

Introduction to G NUPLOT 8
Tabulating a function
To tabulate the function f(x) and to store the result in a file called
tablefile.txt use
• set table "tablefile.txt"
• plot f(x)
• unset table

Assignment 1
• Define a function.
• Choose a number of points.
• Write the tabulated function to a file.
• Plot this file. Use plot followed by the file name in quotes.
For plot styles see next page. Try scatter plots and line plots.
• If you type test, gnuplot will show you the line types and point
types available for your chosen terminal type.
Introduction to G NUPLOT 9
Plotting data from files
G NUPLOT can also read data from files
• scatter plot:
1 2.1 3.2
plot ’data.txt’ using 1:2
2 2.2 4.3
plot ’data.txt’ using 1:2 with points 3 2.1 3.6
• example for the short format: 4 2.1 4.8
p ’data.txt’ u 1:2 w p pt 1 lt 2 lw 2 5 2.0 3.2
notitle 6 2.2 4.5
7 2.2 2.5
• line plot: 8 2.0 6.3
plot ’data.txt’ using 1:2 with lines 9 2.1 1.1
• multiple data series: data.txt
use replot or separate by commas
plot ’data.txt’ using 1:2, ’data.csv’ produced via
using 1:3 F ORTRAN IO
• set key: or C++ IO
plot ’data.txt’ using 1:2 title "key"
Introduction to G NUPLOT 10
Parametric plot
If you want to draw a circle you can use:
• set parametric
• set trange [-pi:pi]
• plot sin(t),cos(t)
• unset parametric
In the parametric mode, the variable is “t” (instead of x).

Assignment 2
• Define two functions to plot an ellipse in parametric mode.
You can use a=1 if you want to define a variable a with a value
1. You can use such variables in your functions.
• Choose a number of points.
• Write the tabulated function to a file and plot this file.
• Use the commands from the next two pages. Try different line
widths. For presentations you sometimes need thicker lines to
make sure that the projector will display the lines. Add labels.
Introduction to G NUPLOT 11
Labels, arrows, key

• place or hide key


set key top center, set nokey
• set a title
set title "the title"
• define axis labels
set xlabel "x [pc]", set ylabel "y [pc]"
• change the number format
set format x "%10.3f"
• plot an arrow
set arrow from 0.5,0 to 0.5,1
• define a label
set label "rarefaction wave" at 0.5,0
• set border style
set border lw 3
Introduction to G NUPLOT 12
Other useful commands
• do math on columns
$0 ... running index, $1 ... first column, $2 ... second column
plot ’./data.txt’ u ($0*10):($2*10**($1)) w lp
• blank lines in data files
if blocks of data are separated by blank lines the index
command can be used to plot individual blocks
• color, width and shape of lines/points
linetype / lt, pointtype / pt,
linewidth / lw, pointsize / ps
• logscale
[un]set logscale [xy],
• select zoom
set xrange [0:10] ... manually selected range of x-axis,
set yrange [*:*] ... select zoom of y-axis automatically,
set autoscale ... select zoom of any axis automatically
Introduction to G NUPLOT 13
Polar plot

If you want to draw a rosette shaped curve you can use:


• set polar
• set size square
• f(t)=a*sin(b*t)
• a=2
• b=2
• plot f(t)
• unset polar
In the parametric mode, the variable is “t” (instead of x).

Assignment 3
• Draw some rosette shaped curves.

Introduction to G NUPLOT 14
Multiple graphs

Sometimes you want to use several panels in a plot.

Assignment 4
• Open the file 2013 data/stars 3r.214.dat in an editor and
find out what is tabulated in the columns.
• Use the examples on the next pages and combine four plots.
e.g. (1) x+z position (2) y+z position (3) x,age (4) y,age
• Label your plots.
• Now try a different number of panels e.g. 3 rows, 1 column.

Introduction to G NUPLOT 15
Multiple graphs - panels

• stack several plot commands


set multiplot
• scale the plot
set size 10
x
100
90 x2
5 80
70
• place the plot 0
60
50
40
set origin -5 30
20
10
-10 0
• leave multiplot mode -10 -5 0 5 10 -10 -5 0 5 10
1000 10000
unset multiplot x3 9000 x4
500 8000
7000
6000
set m u l t i p l o t 0 5000
4000
set o r i g i n 0 ,0 -500 3000
2000
set s i z e 0 . 5 , 0 . 5 1000
p l o t x∗x∗x t ” x ˆ 3 ” -1000 0
-10 -5 0 5 10 -10 -5 0 5 10
set o r i g i n 0 , 0 . 5
plot x t ” x ”
set o r i g i n 0 . 5 , 0 . 5
p l o t x∗x t ” x ˆ 2 ”
set o r i g i n 0 . 5 , 0
p l o t x∗x∗x∗x t ” x ˆ 4 ”
unset m u l t i p l o t

Introduction to G NUPLOT 16
Multiple graphs - y1 and y2 axis

set ytics nomirror


set y2tics 0, 10
set key top center
plot x axis x1y1, x*x axis x1y2
10 100
x
x*x 90

80
5
70

60

0 50

40

30
-5
20

10

-10 0
-10 -5 0 5 10

Introduction to G NUPLOT 17
Fitting data
Gnuplot can also fit your data with functions.

Assignment 5
• Use your ellipse from assignment 2. You can add scatter with
awk and the rand() function. e.g.
awk ’ { i f ( $3 ==” i ” ) {$1=$1 +( rand ( ) −0.5) ∗ 0 . 0 1 ; $2=$2
+( rand ( ) −0.5) ∗ 0 . 1 ; p r i n t $0}} ’ e l l i p s e . t x t >
ellipse . scatter
• Note: if you use German language settings in your shell, you
might need to say LANG=C or LANG=en US.UTF-8 on the shell
to avoid conflicts with decimal points or commas.
• Plot it.
• Try to fit it.
• Also plot the fit.
• A possible solution can be found in ellipse.solution
• Now try to tilt your ellipse by 45 degrees and try to fit it again.
Introduction to G NUPLOT 18
awk
awk commands can have three blocks:
awk ’ BEGIN{ i =0}{ i ++}END{ p r i n t ” number o f l i n e s : ” , i } ’
2013 d a t a / g a s 3 r . 2 1 4 . d a t

• The “BEGIN” block contains commands that should be


executed directly after awk starts. Typically initializations.
• The main part loops over all lines in the input file
• The “END” block is read directly before awk exits.
All blocks are enclosed in curly brackets and commands in a block
are separated by ; . You can also use loops in awk:
awk ’ BEGIN{ srand ( ) ; i =0; j =0; k =0;}
{ w h i l e ( j < 10) {
w h i l e ( k < 10) {
T=rand ( ) ∗1e4 ; p r i n t j , k , T ; k=k +1;}
k =0; p r i n t ” ” ; j = j +1;}
} ’ 1line
Introduction to G NUPLOT 19
Fitting data
define a power law
f(x)=a*x**b+c
fit your data - you might need to set initial values for a,b,c
fit [1.5:*] f(x) ’data.txt’ using 1:2 via a,b,c
clip the fit to the fitted area
fcut(x) = x <1.5 ? 1/0 : f(x)
display the fit
rep fcut(x) t sprintf("[1.5:4] %g xˆ {%g} + %g", a,b,c)
35

30 60 M
[0:1.5] 7.45 t + 2.30
25 [1.5:4] 2.92 t6/5 + 10.19
bubble radius [pc]

20

15

10

5
Minimum = 3.76631 pc, Maximum = 29.5912 pc

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [Myr]
Introduction to G NUPLOT 20
Drawing error bars

plot ’data.txt’ u 0:1:2:3 w yerrorbars


uses
• column 1 as y values,
• column 2 as lower end of the vertical error bar and
• column 3 as the upper end of the vertical error bar.
horizontal error bars are created with xerrorbars

Introduction to G NUPLOT 21
Output formats

set term latex, tikz, eps, png ...

Example:
set terminal png
set output "plot.png"
set multiplot
...
unset multiplot
set term wxt

You can customize the terminal:


set terminal png nocrop enhanced font FreeSansBold 18
size 800,600

Introduction to G NUPLOT 22
File with coordinates and temperature

#awk ’ BEGIN{srand ( ) ; i n d =10;}


# {while ( ind > 0) {
# x=rand ( ) ∗ 1 0 ; y=rand ( ) ∗ 1 0 . ;
# z=rand ( ) ∗ 1 0 ; T=rand ( ) ∗ 1 e4 ;
Assignment 6 # p r i n t x , y , z , T ; i n d = ind −1}}’
# x y z T
The file gas 3r.214.dat 0.59582 3.94872 6.1967 7998.84
6.5519 7.6995 5.57703 3189.28
contains the (x,y,z) coordinates 2.18446 4.24577 8.66912 1837.28
9.1135 0.627003 8.04655 8363.9
of a point and the temperature. 1.98704 6.17223 6.72384 7623.37
6.02263 2.42297 2.81232 6649.25
Use the example on the next two 3.89771 8.89551 6.84724 1554.17
pages and plot color coded 0.970098 4.44185 4.21257 690.311
2.06219 9.2371 7.89356 7030.08
temperatures at the xy position 4.48321 9.24652 6.26523 9672.72
9.96331 3.41045 9.51404 10.3592
of the point. The example uses a 1.4666 9.07461 7.048 203.987
3.69213 3.68113 8.76336 195.501
scale running from red to blue, 8.30955 8.55802 4.67305 9369.63
1.84836 5.38461 9.17682 78.5009
but feel free to test other 7.89623 1.98271 3.33848 8015.49
3.37396 6.16493 3.95816 85.7048
palettes. 0.041832 3.0696 0.683514 1341.57
4.52064 8.32836 4.73786 4954.87
6.02226 6.12297 8.839 650.453

data file with x[pc] y[pc] z[pc] T [K]

Introduction to G NUPLOT 23
Script for colored dots

set t i t l e ” l o g ( T ) [ K ] ”
# data x y z T
set p a l e t t e d e f i n e d ( 1 ” b l u e ” , 2 ” y e l l o w ” , 3 ” orange
” , 4 ” red ” )
set cbrange [ 1 : 4 ] # 10 t o 1e4 K e l v i n
#2d
set x l a b e l ” x [ pc ] ”
set y l a b e l ” y [ pc ] ”
p l o t ’ xyzT . t x t ’ u 1 : 2 : ( log ( $4 ) / log ( 1 0 . ) ) with p o i n t s
palette pt 7 n o t i t l e
pause −1 ’ 2d , press ENTER t o proceed t o 3d ’
#3d :
set t i c s l e v e l 0 # zero−p o i n t o f z a x i s
set z l a b e l ” z [ pc ] ”
s p l o t ’ xyzT . t x t ’ u 1 : 2 : 3 : ( log ( $4 ) / log ( 1 0 . ) ) with
points palette pt 7 n o t i t l e

Introduction to G NUPLOT 24
2d, plot
log (T) [K]
10 4
9
3.5
8
7
3
6
y [pc]

5 2.5
4
2
3
2
1.5
1
0 1
0 1 2 3 4 5 6 7 8 9 10
x [pc]
Introduction to G NUPLOT 25
3d plots

• Use splot to produce a plot with the positions of the stars or


the gas data in the 2013 data folder. Click on the plot and
change the viewing angle.
• Use awk and plot only a certain temperature range. An
example is on the page after the next page.

Introduction to G NUPLOT 26
3d , splot

log (T) [K]

4
3.5
10
9 3
8 2.5
7 2
z [pc] 6 1.5
5
4 1
3
2 10
1 7 89
0 0 6
1 2
3 4 3 45 y [pc]
5 6 2
x [pc] 7 8 9 1
100

Introduction to G NUPLOT 27
3d , splot and awk
rep ”<awk ’ BEGIN{Tmax=1000}{ i f ( $4 < Tmax ) { p r i n t $1 , $2
, $3 , $4 } } ’ xyzT . t x t ” u 1 : 2 : 3 l t 1 t ” s t a r f o r m a t i o n

rep ”<awk ’ BEGIN{M A X c o l d f r a c t i o n = 0 . 6 ; rhoSFR =1;Tmax=1000}{ i f (NF==6){ i f ( ( $5 >
M A X c o l d f r a c t i o n ) | | ( ( $6 > rhoSFR ) && ( $4 < Tmax ) ) ) { p r i n t $1 , $2 , $3 , $4}}e l s e{ i f ( $4 <
Tmax ) { p r i n t $1 , $2 , $3 , $4}}}’ xyzT . t x t ” u 1 : 2 : 3 l t 1 t ” s t a r f o r m a t i o n ”

log (T) [K]

star formation

3.5
10
3
9
8 2.5
7 2
z [pc] 6
1.5
5
1
4
3
2 10
9
1 8
7
0 6
0 1 5
2 3 4 y [pc]
4 5 3
6 2
7 8 1
x [pc] 9 10 0
Introduction to G NUPLOT 28
Typical grid code data
# x y T
#awk ’ BEGIN{srand ( ) ; i =0; j =0; k =0;}
# { w h i l e ( j < 10) {
# w h i l e ( k < 10) {
# T=rand ( ) ∗ 1 e4 ;
# p r i n t j , k , T ; k=k +1;}
# k =0; p r i n t ” ” ; j = j +1;}} ’
0 0 2539.97
0 1 9259.75
A file contains the (x,y) 0 2 8698.62
0 3 7780.29
coordinates of a cell and a 0 4 3295.49
0 5 7360.98
temperature. 0 6 5922.8
0 7 4545.35
The data is arranged in blocks 0 8 3687.71
0 9 9291.88
The temperature will be plotted
1 0 8663.94
color coded on a scale running 1 1 4920.67
from red to blue. 1
1
2
3
1738.12
2604.78
1 4 8554.96
1 5 3204.42
1 6 6657.76
1 7 7011.96
1 8 9935.54
1 9 6665.75

data file with x[pc] y[pc] T [K]

Introduction to G NUPLOT 29
Grid code data: color maps with pm3d
set t i t l e ” l o g ( T ) [ K ] ”
# 2d data x y T
set p a l e t t e d e f i n e d ( 1 ” b l u e ” , 2 ” y e l l o w ” , 3 ” orange
” , 4 ” red ” )
set cbrange [ 1 : 4 ] # 10 t o 1e4 K e l v i n
set x l a b e l ” x [ pc ] ”
set y l a b e l ” y [ pc ] ”
set s i z e square
set view 0 ,0
set pm3d a t b c o r n e r s 2 c o l o r c1 c l i p 4 i n map
unset surface
set term t i k z
set output ” Txy . t i k z ”
s p l o t ’ g r i d x y z T . t x t ’ u ( $1 ) : ( $2 ) : ( log ( $3 ) / log ( 1 0 . ) )
notitle
set output ” TxyCLIP . t i k z ”
s p l o t [ : ] [ : ] [ 3 : 4 ] ’ g r i d x y z T . t x t ’ u ( $1 ) : ( $2 ) : ( log ( $3 )
/ log ( 1 0 . ) ) n o t i t l e # c l i p t o [ 1 e3 : 1 e4 ] K
Introduction to G NUPLOT 30
Grid code data: color maps with pm3d

log (T) [K]


9 4
8
3.5
7
6 3
5
y [pc]

2.5
4
3 2
2
1.5
1
0 1
0 1 2 3 4 5 6 7 8 9
x [pc]

Introduction to G NUPLOT 31
Grid code data: color maps with pm3d
zrange [1.e3:1.e4]
log (T) [K]
9 4
8
3.5
7
6 3
5
y [pc]

2.5
4
3 2
2
1.5
1
0 1
0 1 2 3 4 5 6 7 8 9
x [pc]
Introduction to G NUPLOT 32
Movies

• produce png images for all snapshots


• combine with libmagick
!convert -delay 20 -loop 1 frame ????.png movie.gif
(inside G NUPLOT , otherwise no exclamation mark)

Introduction to G NUPLOT 33
Movies

Assignment 9: Make a movie from your 3d positions.


• If you use gnuplot 4.6 you can use a do loop:
To rotate the view, try e.g.
do for [t=0:18]{set view t*5,30,1,1;rep;pause -1}.
If you want to store the snapshots use:
do for [t=0:18]{outfile=sprintf(’view%03.0f.png’,t);
set view t*5,30,1,1;set output outfile; rep}
• In earlier versions you have to place your code in two files and
to use “reread”:
File 1: t=0; tmax=18;load "file2.gnuplot"
File 2: t=t+1;outfile = sprintf(’view%03.0f.png’,t);
set view t*5,30,1,1;set output outfile; plot
data.txt; if(t<tmax) reread;

Introduction to G NUPLOT 34
Loops in Gnuplot 4.6
Gnuplot 4.6 can handle loops:
# s i m p l e l o o p example − ( s l o w l y ) r o t a t e s a 3d p l o t
set term x11 #package g n u p l o t −x11 has t o be i n s t a l l e d
s p l o t sin ( x ) ∗ sin ( y ) #any 3d p l o t
# s e t term png # f o r movies : s t o r e as png
do f o r [ t = 0 : 4 5 ] { # Gnuplot 4 . 6 o r h i g h e r
# t : l o o p v a r i a b l e , r u n n i n g from 0 t o 4 5 . s t e p s i z e : 1
# o u t f i l e = s p r i n t f ( ’ f r a n z %03.0 f . png ’ , t ) #numbered
o u t p u t f i l e s f r a n z 0 0 1 . png , f r a n z 0 0 2 . png . . .
# set output o u t f i l e #use these f i l e n a m e n s
set view 60 , 2∗ t , 1 , 1 # d e f i n e v i e w i n g angle
pause 0 . 2 ; # slow down r o t a t i o n i n x11
rep #update p l o t
}
# l i b m a g i c k can c o n v e r t these f i l e s i n t o an animated
g i f : ” c o n v e r t −d e l a y 20 −l o o p 1 f r a n z ???. png movie
. gif ”

Introduction to G NUPLOT 35
Optimizing plots

1. Focus on the purpose of the figure.


What do you want to show?
2. Keep it simple and efficient.
Which variable is independent (plot on x axis) or dependent (y
axis)? Choose good units for the axes. Scale the axes to
make good use of the figure’s area.
3. Explain what you plot: label the axes, find a good title, add a
key to symbols and write a clear and complete caption [not
just re-stating what’s on the axes]. The plot should be self
explanatory – the intended audience should understand it
even without reading the text of your paper.
4. Show you figure to a colleague – optimally somebody not
directly working with you – to check if it is clear. Try to make
your plot as simple as possible.

Introduction to G NUPLOT 36
Checklist for good plots

• enough information in well chosen title / caption ?


• content of labels (e.g. units)?
• content of key of symbols?
• too much information for a single graph?
• plot type suited for purpose?
scatter vs. line graph; error bars; fits
• is x the independent variable and y the dependent variable?
• large enough font size of labels?
• sufficient line width?
(e.g. a few pixels for presentations with data projectors)
• optimized number of tick marks, minor tick marks?
• plot looks ”empty”? zoom ... make good use of the plot area
• plot format (eps, png, tikz) suited for the purpose?

Introduction to G NUPLOT 37
Manuals

• G NUPLOT homepage www.gnuplot.info


• Introduction to G NUPLOT and Not so FAQ and Solutions
http://t16web.lanl.gov/Kawano/gnuplot/index-e.html
• Download e.g. Windows version
http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.0/

Introduction to G NUPLOT 38
test shows linetypes
9 24

8 23

7 22

log rho [g/cm3]


log T [K]

6 21
log10 T [K]
log10 rho [g/cm3]
5 20

4 19

3 18

2 17
11 11.5 12 12.5 13
x [pc]

Introduction to G NUPLOT 39