Johann L. schrieb:
> Wie kommst du auf all die magischen Zahlen? Ist das einfach
> ausprobieren oder kann man die berechnen?
einige davon sind ausprobiert.
Also
1 | set key samplen 2
|
2 | set key spacing 1.5
|
3 | set key at graph 1, 1 left
|
4 | set key reverse Left
|
mach ich immer gleich, weil es meiner Meinung nach hübscher aussieht als
der Defaultwert, und weil ich die Legende immer oben links ausserhalb
des Plots will. Die Legende ist mit den 3 obigen Befehlen bombenfest
verankert und immer gleich.
1 | set bmargin 4
|
2 | set lmargin 15
|
3 | set rmargin 18
|
ist immer ein wenig ein herum pröbeln. Ich mach die Achsen bei
Diagrammen immer DIN461-formatiert, wegen der Legende und wegen
allfälliger Einheiten oder Spezialsymbolen sind die Achsenbeschriftungen
immer ein wenig anders in der Breite bzw. Höhe. Ich habe da leider noch
keine befriedigende Lösung gefunden, die zuverlässig funktioniert.
1 | set multiplot layout 2,1
|
das ist ja klar (2 Zeilen, 1 Spalte).
1 | set label 1 at graph 0.5, graph -0.35 'xlabel' center
|
2 | set label 2 at graph -0.12, graph 0.5 'y1label' right
|
3 | ...
|
4 | set label 2 at graph -0.12, graph 0.5 'other' right
|
ich mache die Achsenbeschriftungen immer mit "set label" und nicht
"xlabel" oder "ylabel", weil vor einigen Monaten in gnuplot eine
Änderung gemacht wurde, die mir alte Plots zerschossen hat und ich
musste dann jeden Plot händisch anfassen. Es hatte irgendwas mit der
Ausrichtung der x/y-Labels zu tun, die gnuplot automatisch macht. Auf
jeden Fall hat da was nicht richtig funktioniert, und seither mache ich
die Labels händisch. graph 0.5 bedeutet, dass das Label mittig zum
Graphen positioniert wird (beim x-Label ja sinnvoll, deshalb ist es auch
zentriert). Die -0.35 findet man durch herum pröbeln ;-) dasselbe fürs
y-Label.
Man könnte übrigens auch schreiben
1 | set label 1 at graph 0.5, graph -0.35 'xlabel' center
|
2 | set label 2 at graph -0.12, graph 0.5 'y1label' right
|
3 | ...
|
4 | set label 2 'other' right
|
womit man die Positionsangabe beim 2. mal eigentlich sparen kann, nur
der Text muss geändert werden.
Ich habe mir eine gnuplotsetup.gp zusammen gebastelt, die so aussieht
1 | set linetype 1 lw 2 lc rgb '#0072bd' # blue
|
2 | set linetype 2 lw 2 lc rgb '#d95319' # orange
|
3 | set linetype 3 lw 2 lc rgb '#edb120' # yellow
|
4 | set linetype 4 lw 2 lc rgb '#7e2f8e' # purple
|
5 | set linetype 5 lw 2 lc rgb '#77ac30' # green
|
6 | set linetype 6 lw 2 lc rgb '#4dbeee' # light-blue
|
7 | set linetype 7 lw 2 lc rgb '#a2142f' # red
|
8 |
|
9 | set palette defined (\
|
10 | 0 '#352a87',\
|
11 | 1 '#0363e1',\
|
12 | 2 '#1485d4',\
|
13 | 3 '#06a7c6',\
|
14 | 4 '#38b99e',\
|
15 | 5 '#92bf73',\
|
16 | 6 '#d9ba56',\
|
17 | 7 '#fcce2e',\
|
18 | 8 '#f9fb0e')
|
19 |
|
20 | set style line 1 lw 3
|
21 | set style line 2 lw 3
|
22 | set style line 3 lw 3
|
23 | set style line 4 lw 3
|
24 | set style line 5 lw 3
|
25 | set style line 6 lw 3
|
26 | set style line 7 lw 3
|
27 |
|
28 | set style line 100 lw 1 lc rgb 'black' dt '.'
|
29 | set grid ls 100 front
|
30 |
|
31 | set border 15 lw 2 front
|
32 |
|
33 | set key at graph 1,1 left
|
34 | set key reverse Left
|
35 | set key samplen 2
|
36 | set key spacing 1.5
|
und die muss ich dann nur noch einmal laden:
1 | laod 'gnuplotsetup.gp'
|
2 | plot sin(x) title 'funky stuff'
|
dann sieht der Plot schon defaultmässig etwas hübscher aus (u.a. will
ich immer ein Gitter und die Matlab-Farben verwenden, und eben ein paar
Ausrichtungen an der Legende korrigieren).
Im Anhang ein Beispiel wie ich das dann immer mache. Dass sind dann nur
noch wenige Zeilen, weil ich nur die Labels und Ränder richtig setzen
muss und natürlich noch der eigentliche Plotbefehl. Aber so kann man
sich ein wenig Schreibarbeit sparen :-)