Atak hack!
set term pngcairo truecolor size 300,300 font "Arial,12"
set out 'plot.png'
# x,y min/max and center
xmin = -10
xc = 0
xmax = 10
ymin = -2
yc = 0
ymax = 2
# default borders
tm = 1
bm = 1
rm = 4
lm = 4
# arrow scale factor to cover last tic
af = 1.05
set arrow from xc,yc to xmin*af,yc filled size 0.6,30
set arrow from xc,yc to xmax*af,yc filled size 0.6,30
set arrow from xc,yc to xc,ymax*af filled size 0.6,30
set arrow from xc,yc to xc,ymin*af filled size 0.6,30
set multiplot layout 2,2
## Plot 1, top left
set key top left
set xr [xmin:xc]
set yr [yc:ymax]
set tmargin tm
set bmargin 0
set rmargin 0
set lmargin lm
set border 9
unset ytics
set xtics nomirror
plot sin(x)
## Plot 2, top right
unset key
set xr [xc:xmax]
set lmargin 0
set rmargin rm
set border 3
set ytics nomirror
replot
## Plot 3, bottom left
set xr [xmin:xc]
set yr [ymin:yc]
set bmargin bm
set tmargin 0
set lmargin lm
set rmargin 0
set border 12
unset tics
replot
## Plot 4, bottom right
set xr [xc:xmax]
set lmargin 0
set rmargin rm
set border 6
set ytics nomirror
replot
unset multiplot
uzyskać ten wynik:
Powiedział, że można zajrzeć do opcji zeroaxis
. Jest demonstracja here. Niestety ta opcja nie rysuje osi na zero, ale po prostu umieszcza linię w tej pozycji.
Nie powiedziałbym, że moja metoda jest "wydajna", ale prawdopodobnie nie ma zbyt dużego wysiłku, aby zmodyfikować to do swoich celów, oprócz zmiany funkcji/danych wykreślanych, ponieważ większość pracy jest wykonywana przez polecenia replot
. Nie znam opcji, aby zrobić gnuplot umieścić strzałki na końcu osi lub zmienić, gdzie osie są rysowane natywnie.
+1. 'set zeroaxis' wydaje się, że obie osie przechodzą przez początek w jednym poleceniu. Możesz również określić grubość i typ linii dla osi: 'set zeroaxis linewidth 2 rodzaj 1', itp. – Umang
Możesz najpierw" wyłączyć x2tics "i" unset y2tics ". W przeciwnym razie wszystkie tiki zostaną wyświetlone dwukrotnie. – d3dave