Я строю несколько файлов данных в одном кадре с помощью команды multiplot
в gnuplot (версия 5.2
). Мне удалось воспроизвести проблему, с которой я столкнулся, с помощью этого кода ниже, где, например, вместо файлов данных я строю простые sin
-функции.
Код
reset session
# ****** margins *****
if (!exists("MP_LEFT")) MP_LEFT = 0.1
if (!exists("MP_RIGHT")) MP_RIGHT = 0.95
if (!exists("MP_BOTTOM")) MP_BOTTOM = 0.075
if (!exists("MP_TOP")) MP_TOP = 0.925
if (!exists("MP_GAP")) MP_GAP = 0.025
# ****** Macros *****
XLABEL = "set xlabel '{/:Italic=20 x}' offset graph 0, 0.3"
NOXLABEL = "unset xlabel"
NOXTICS = "set format x ''"
NOYTICS = "set format y ''"
OBJECT = "unset object; set object circle at graph 0, 0 radius scr 0.1"
set terminal pngcairo
set termoption font "Times, 12"
set output "test.png"
set multiplot layout 2, 2 rowsfirst \
margins scr MP_LEFT, MP_RIGHT, MP_BOTTOM, MP_TOP \
spacing scr MP_GAP
@NOXLABEL
@XLABEL
@NOXTICS
@NOYTICS
@OBJECT
plot sin(x) w l title "sin(x)"
@NOXLABEL
@XLABEL
@NOXTICS
@NOYTICS
plot sin(x + pi/4) w l title "sin(x + {/Symbol p}/4)"
@NOXLABEL
@XLABEL
@OBJECT
@NOXTICS
@NOYTICS
plot sin(x + pi/2) w l title "sin(x + {/Symbol p}/2)"
@NOXLABEL
@XLABEL
@OBJECT
@NOXTICS
@NOYTICS
plot sin(x + pi) w l title "sin(x + {/Symbol p})"
unset multiplot
unset output
Макросы очень полезны в мультиплоте, так как они помогают совместно использовать похожие команды во всех подсюжетах, как я делаю, например, с макросом OBJECT
. Однако здесь я не смог понять, почему смещение, которое я выбираю для xlabels с помощью макроса XLABEL
, создает различные сдвиги по отношению к xaxis
на разных вспомогательных участках, особенно в (строка: 1, столбец: 1) и (строка: 2, столбец: 1) в результате ниже.
Результат
Может Кто-нибудь помочь исправить неправильное поведение xlabel в макросе? Объяснение проблемы приветствуется.