Как увеличить внешнее поле в мультиплоте gnuplot, чтобы соответствовать большему шрифту заголовка? - PullRequest
1 голос

У меня есть мультиплот, и я хочу увеличить размер шрифта заголовка.

Когда я пытаюсь:

#!/usr/bin/env gnuplot
set terminal png size 1024, 1024
set output 'tmp.png'
set multiplot layout 2,2 title "Asdf Qwer" font ",30"
plot sin(x)
plot cos(x)
plot exp(x)
plot exp(-x)

заголовок становится слишком большим и обрезается:

enter image description here

Я попытался увеличить верхнее поле с tmargin (здесь при преувеличенном значении для демонстрации):

#!/usr/bin/env gnuplot
set tmargin 30
set terminal png size 1024, 1024
set output 'tmp.png'
set multiplot layout 2,2 title "Asdf Qwer" font ",30"
plot sin(x)
plot cos(x)
plot exp(x)
plot exp(-x)

но это только увеличивает внутреннюю границу выше каждого графика, а верхний заголовок все еще обрезается:

enter image description here

Протестировано в gnuplot 5.2, уровень исправлений 6, Ubuntu 19.04.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

В Gnuplot иногда возникают проблемы с правильной оценкой пространства, необходимого для текста.

Простой обходной путь - создать двухстрочный заголовок с пустой первой строкой (\n):

#!/usr/bin/env gnuplot
set terminal png size 1024, 1024
set output 'tmp.png'
set multiplot layout 2,2 title "\nAsdf Qwer" font ",30"
plot sin(x)
plot cos(x)
plot exp(x)
plot exp(-x)
unset multiplot

Результат: title with empty first line

Другая возможность - заменить терминал png на терминал pngcairo:

#!/usr/bin/env gnuplot
set terminal pngcairo size 1024, 1024
set output 'tmp.png'
set multiplot layout 2,2 title "Asdf Qwer" font ",30"
plot sin(x)
plot cos(x)
plot exp(x)
plot exp(-x)
unset multiplot

Результат: pngcairo terminal

1 голос
/ 03 июня 2019

Видимо, что-то не так с вычислением места для заголовка. Таким образом, вместо этого одной из возможностей будет установка поля вручную и добавление заголовка в качестве метки.

Код:

### multiplot title with enough space
reset session

set multiplot layout 2,2 margin 0.1,0.95,0.1,0.85 spacing 0.1,0.1
set label 1 "Asdf Qwer" center font ",40" at screen 0.5, 0.95

plot sin(x)
plot cos(x)
plot exp(x)
plot exp(-x)

unset multiplot
### end of code

Результат:

enter image description here

...