2013-08-22 4 views
5

У меня возникают трудности с выравниванием различных ключевых заголовков при горизонтальном размещении, по-видимому, из-за различной длины в заголовках.gnuplot - выравнивание горизонтальных ключевых заголовков разной длины

Имея два коротких титула (1-й и 4-й) и два более длинных заголовка (2-й и 3-й), он оставляет больший промежуток между финальными двумя заголовками (предположительно, поскольку он устанавливает промежутки между ними на одну и ту же максимальную длину строки). Я искал, но не нашел способа изменить это.

Ниже приведен упрощенный пример. Любые предложения или помощь будут очень признательны.

set terminal postscript eps size 5.12,2.3 enhanced color "Helvetica" 12 
set output 'example.eps' 

set title 'Difficulty of Long and Short Title usage in Horizontal Keys' font "Helvetica, 20" 

set key inside bottom center horizontal font "Helvetica, 20" width 1.8 

set ylabel 'ylabel' font "Helvetica, 20" 
set xlabel 'xlabel' font "Helvetica, 20" 
set lmargin screen 0.10 
set rmargin screen 0.95 
set yrange [-1.5:1.5] 

plot sin(x) title 'short', \ 
cos(x) title 'long title 1', \ 
-0.5 title 'long title 2', \ 
0.5 title 'short' w l ls 4 

Результат: enter image description here

+0

Я не вижу способа решить эту проблему с помощью существующих опций 'set key'. Есть ли у вас зависимость между одним длинным и коротким заголовком? Может быть, будет работать клавиша «2x2» ('set key maxcols 2') с короткими клавишами в левом столбце? – Christoph

+0

Большое спасибо за ваш ответ. К сожалению, я очень заинтересован в сохранении порядка названий в реальном сюжете и предпочитаю держать их в одном ряду. Это, очевидно, эстетический вопрос, поэтому не конец света, но было бы полезно узнать, возможно ли это или нет. Есть ли обходные пути? – user2707058

ответ

3

Одним из возможных обходного пути для этого будет генерировать первые три графика и последнюю с два различными сюжетом команд в multiplot режиме:

set terminal postscript eps size 5.12,2.3 enhanced color "Helvetica" 12 
set output 'example.eps' 

set title 'Difficulty of Long and Short Title usage in Horizontal Keys' font "Helvetica, 20" 

set ylabel 'ylabel' font "Helvetica, 20" 
set xlabel 'xlabel' font "Helvetica, 20" 
set lmargin screen 0.10 
set rmargin screen 0.95 
set yrange [-1.5:1.5] 

set bmargin screen 0.15 
set tmargin screen 0.9 

set multiplot 
set key horizontal font "Helvetica, 20" width 1.8 at graph 0.4, graph 0.1 center maxrows 1 
plot sin(x) title 'short', \ 
    cos(x) title 'long title 1', \ 
    -0.5 title 'long title 2' 

unset title 
unset xlabel 
unset ylabel 
unset border 
unset tics 
set key horizontal font "Helvetica, 20" width 1.8 at graph 0.84, graph 0.1 center maxrows 1 
plot 0.5 title 'short' w l ls 4 
unset multiplot 

Однако это требует тонкой настройки:

  • Перед вторым plot вы должны удалить заголовок, ярлыки, тики и границу, иначе график может выглядеть зубчатым из-за различного сглаживания
  • Чтобы иметь s AME поля вы также должны установить фиксированные tmargin и bmargin
  • Вы должны поместить ключи вручную

Приведенный выше код дает: enter image description here

Теперь вы должны судить, если его стоит.

-2

Вы можете использовать svg терминал и выполните настройки, открыв файл SVG на Inkscape.

+0

Или используйте терминал png и используйте редактор растровой графики или постскриптум и отредактируйте источник ... Вы шутите, не так ли? – DanielTuzes

+0

«Вы ** шутите, не так ли?» Какие? Я написал этот ответ более двух лет назад! О чём ты говоришь? –