Korzystanie z programu gnuplot (index)


Korzystanie z programu gnuplot (5) - konfiguracja wykresów 2D

WPROWADZENIE

Parametry rysunku określamy za pomocą polecenia set. Powrót do domyślnych ustawień osiąga się za pomocą polecenia reset.


gnuplot> show all          # wszystkie parametry
gnuplot> show title        # wartość parametru title
gnuplot> set title "Wykres f(x)"
gnuplot> unset title       # wyłączenie tytułu
gnuplot> set notitle       # jw, dawna składnia
gnuplot> 

RANGES

Domyślny zakres x to [-10:10], y jest skalowany do danych. Zakresy można ustawiać w poleceniu plot lub osobno (set xrange, set yrange).


plot [-5:5] sin(x)            # zakres y domyślny
plot [] [-2:2] sin(x)         # zakres x domyślny

AXES

Są dostępne cztery zestawy osi do wykorzystania: x1y1 (default), x2y2, x1y2, x2y1.

GRID, BORDER, TICS


gnuplot> help grid
gnuplot> show grid
gnuplot> help border
gnuplot> show border
gnuplot> help tics
gnuplot> show tics

set grid                      # włączenie siatki pomocniczej
unset grid

set border                    # domyślnie jest ramka
unset border                  # wyłącza ramkę

set tics out                  # domyślnie jest "in"
set xtics 0,.5,10             # od 0 do 10 co .5
set xtics ('a' 1, 'b' 3, 'c' 8)         # ręczne ustawienia
set xtics auto                # ustawienia domyślne
unset xtics                   # wiadomo, podobnie ytics, x2tics, y2tics

TITLE

Parametr title występuje w kilku różnych kontekstach, może odnosić się do różnych części rysunku.


gnuplot> help title
gnuplot> show title

set title "Funkcja sinus"     # tytuł rysunku

set key title "Legenda"       # tytuł do legendy

plot sin(x) title "sinus"     # oznaczenie w legendzie

KEY

Pojedyńcze wpisy w legendzie mogą być wyłączone w poleceniu plot przez notitle lub title "".


gnuplot> help key
gnuplot> show key

unset key                     # bez legendy

# set key {on|off} {default}
# {inside | outside}
# {lmargin | rmargin | tmargin | bmargin}
# {above | over | below | under}        # też dozwolone
# {at <position>}                   # at 1.2,3.4
# {left | right | center}
# {top | bottom | center}
# {vertical | horizontal}     # domyślnie vertical
# {Left | Right}    # justowanie napisu w legendzie, domyslnie Right
# {{no}reverse}     # zamiana kolejności napisu i probki linii
# {{no}invert}      # opis pierwszej linii na końcu legendy
# {samplen <sample_length>}       # domyślnie 4
# {spacing <vertical_spacing>}   # domyślnie 1.25
# {width <width_increment>}
# {height <height_increment>}
# {{no}autotitle {columnheader}}  # tylko opisy z title będą widoczne
# {title "<text>"} {{no}enhanced}
# {font "<face>,<size>"} {textcolor <colorspec>}
# {{no}box { {linestyle | ls <line_style>} 
# | {linetype | lt <line_type>} {linewidth | lw <line_width>}}}

set key at 1,2                # legenda w punkcie (1,2)
set key outside               # legenda na prawo od rysunku
set key below                 # legenda pod rysunkiem
set key box                   # domyślnie jest nobox
set key box lt 3              # ramka z linetype 3
set key right bottom
set key left top
set key right bottom title "Legenda" box  # tytuł do legendy
set key default               # powrót do domyślnych ustawień

ETYKIETY NA OSIACH


# Przykład.
set title "Funkcje sin(x) i x^2"

# Etykiety osi.
set xlabel "x1"
set x2label "x2"
set ylabel "y1"
set y2label "y2"

# Zakresy na osiach.
set xrange [-3:3]
set yrange [-2:2]
set x2range [-1:1]
set y2range [0:1]
#set autoscale                # powrót do domyślnych ustawień zakresów

set xtics nomirror
set ytics nomirror 1   # skok co 1
set x2tics autofreq   # x2 ma domyslnie nomirror
#set y2tics .5   # co ile
set y2tics autofreq  # y2 ma domyslnie nomirror

plot sin(x) axes x1y1, x*x axes x2y2

ETYKIETY

Etykiety mają przyporządkowany znacznik (tag), czyli liczbę całkowitą. Domyślnie jest ustawiana najniższa niewykorzystana liczba. Dzięki znacznikowi możemy dodefiniować parametry etykiety (set label) lub usunąć etykietę (unset label). Etykiety mogą zostać wczytane z pliku (help labels).


gnuplot> help label
gnuplot> show label

# Składnia:
# set label {<tag>}
# {"<label text>"}
# {at <position>}       # at x,y lub at x,y,z
# {left | center | right}     # domyślnie flush left
# {norotate | rotate {by <degrees>}}
# {font "<name>{,<size>}"}
# {noenhanced}  # wyłączenie trybu enhanced, gdy etykieta ma _ lub ^
# {front | back}              # przy front dane nie zakryją etykiety
# {textcolor <colorspec>}
# {point <pointstyle> {offset x, y} | nopoint}
# Przy etykiecie może być punkt, pointstyle to zestaw lt, pt, ps.
# Domyślnie jest nopoint.

set label 1 "Napis 1" at 1,10 center    # domyslnie left
set label 1 left         # zmiana center na left

set label 2 "Napis 2" at 1,15 right
set label 2 at 1,17             # będzie w nowym miejscu
set label 2 rotate by 90

set label 3 "S" at 3,4 center font "Symbol,24"    # symbol Sigma 24pt
set label 3 "{/Symbol=24 S}" at 3,4 center        # chyba można tak

set label 4 "" at 3,5 point pt 7 ps 0.5   # punkt

unset label 2             # wyłączenie etykiety nr 2
unset label               # wyłączenie wszystkich etykiet

STYLE

Globalne ustawienia można przesłonić ustawieniem w plot (np. dla pointsize mnożniki się nie składają).


gnuplot> help style
gnuplot> show style
gnuplot> show colornames

# Globalne ustawienie stylu.
# Dostępne style: points, lines, linespoints, impulses, dots,
# steps, fsteps, histeps,
# boxes (histogram),

set style data points         # domyślne
set style function lines      # domyślne

# Kolory skojarzone z typami linii.
# lt 1 (red)
# lt 2 (green)
# lt 3 (blue)
# lt 4 (magenta)
# lt 5 (cyan)
# lt 6 (sienna)
# lt 7 (orange)
# lt 8 (coral)

# linecolor <colorspec> | lc <colorspec>
# lc rgbcolor "colorname"     # jedna z nazw wbudowanych (show colornames)
# lc rgbcolor "#RRGGBB"

# linetype 2 | lt 2           # drugi kolor/typ domyślny prostej
# linewidth 2 | lw 2          # dwa razy szersza niż domyślna (multiplier)
# pointtype 3 | pt 3          # trzeci ksztalt domyślny punktu
# pointsize 0.5 | ps 0.5      # o połowę mniejsze (multiplier)

set linewidth 2               # globalnie
set pointsize 3               # globalnie

# Definiowaie stylu wprost w poleceniu plot.
plot "file1.dat" title "data 1" with lines lt 1 lw 2.0,\
"file2.dat" title "data 2" with points pt 4 ps 1.5

# Ustawienie used-defined ls 1 (lc+lt+lw+pt+ps).
#set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 8 ps 1.5
set style line 1 lt 3 lw 2.0 pt 5 ps 1.0

# Ustawienie used-defined ls 2 (lc+lt+lw+pt+ps).
#set style line 2 lc rgb '#1260ad' lt 2 lw 4 pt 5 ps 1.0 
set style line 2 lt 1 lw 1.0 pt 4 ps 1.5

# W plot teraz można krótko odwołać się do stylów przez ls.
plot "file1.dat" title "data 1" with linespoints ls 1,\
"file2.dat" title "data 2" with points ls 2

LOGSCALE


gnuplot> help logscale
gnuplot> show logscale

# Składnia:
# set logscale <axes> <base>
# Jeżeli nie podamy osi, to dotyczy to wszystkich osi.
# unset logscale <axes>

# axes - x, x2, y, y2, z, cb
# base - 10 (default), 2, itp.

set log y 2         # skala log base 2 na osi y
unset log y
unset log           # usuwamy logscale ze wszystkich osi

set logscale xy     # obie osie w skali log
# prościej:
#set logscale
plot [1:10] x*x*x

SIZE

Polecenie przydaje się przy trybach polar i multiplot.


# set size {{no}square | ratio r | noratio} {xscale,yscale}
# square - synonim do "ratio 1"
# ratio r - podaje się stosunek długości osi y do x
# xscale,yscale - skala względem canvas

set size square 0.5,0.5       # kwadratowy, pomniejszony
set size ratio 2              # dwa razy wyższy niż szerszy

ZADANIE 5.1


Korzystanie z programu gnuplot (index)