Построение графиков в gnuplot: о легендах

Легенда - это подпись к рядам данных на графике, которая позволяет понять, к каким данным относится одна зависимость, а к каким - другая. Gnuplot называет легенды словом key, а не legend, и это нужно учитывать.

Как убрать легенду с графика?
Есть два способа. Первый: задать значение

gnuplot> set nokey
или можно указать параметр notitle при построении графика, например так:
gnuplot> plot f(x) notitle, "file.dat" title "data"
После этого в графике легенда отображаться не будет.


Как изменить положение легенды на графике?
Обычно легенда отрисовывается в правом верхнем углу графика. Изменить это можно при помощи команд:
gnuplot> set key bottom left
gnuplot> set key bottom right
gnuplot> set key top left
gnuplot> set key top right

Здесь перечислены варианты, позволяющие отрисовывать легенду в левом нижнем, правом нижнем, левом верхнем и правом верхнем углу графика соответственно. Так же можно попросить gnuplot рисовать легенду за пределами графика - для этого следует добавить параметр outside, или под графиком - для этого есть параметр bottom. Например:

gnuplot> set key outside bottom

Так же можно задать положение легенды с помощью координат, хотя это менее гибкий способ. Если хотите сдвинуть легенду в положение (X,Y)=(100,100), даём команду:

gnuplot> set key 100,100

Координата (100,100) это позиция точки между текстом и линией/символом первой линии легенды. Координаты задаются по осям X и Y.


Как избавиться от отображения погрешностей в легенде?
Когда один из рядов данных имеет погрешности, они тоже отображаются в легенде (например, на рисунке ниже). Даже тогда, когда погрешности по оси Y, они отображаются в легенде горизонтально, и это не нужно.

Например, есть ряды данных:
#  X     Y     Y-погрешность
1.0 1.2 0.2
2.0 1.8 0.3
3.0 1.6 0.2

Строим график:

gnuplot> set xrange [0:4]
gnuplot> set yrange [0:3]
gnuplot> plot "test.dat" usi 1:2:3 title "data" w yerrorbars



и данные о погрешностях отображаются так, как показано на верхнем рисунке.
Может быть, не очень изящный приём:

gnuplot> set xrange [0:4]
gnuplot> set yrange [0:3]
gnuplot> plot "test.dat" usi 1:2:3 notitle w yerrorbars 1,\
"test.dat" usi 1:2 title "data" w points 1
Но работает хорошо.



Как изменить межстрочный интервал в легенде?

Это можно сделать при помощи команды set key spacing.
Например, чтобы сделать полуторный межстрочный интервал в легенде, нужно:
gnuplot> set key spacing 1.5
Это увеличит расстояние между строками в легенде.


Как сделать рамку вокруг легенды?
Чтобы вокруг легенды появилась рамка, следует использовать set key box.
Тип линии рамки будет тот же, что вокруг самого графика. Изменить это можно так:
gnuplot> set style line 1 lt 2 lw 3
gnuplot> set key box linestyle 1
Таким образом, вокруг легенды появится рамка.

7 комментариев: |высказаться!| RSS-лента дискуссии.|
PampKin Head комментирует...

Я вот такой сайтец раскопал по этому вопросу , каогда нужно было использовать покет http://t16web.lanl.gov/Kawano/gnuplot/index-e.html

Анонимный комментирует...

Расскажите пожалуйста про надписи на русском языке с utf8

virens комментирует...

2 PampKin Head пишет...
Я вот такой сайтец раскопал по этому вопросу
Дык, я ж писал в предыдущем посте - мои рассказы основаны на том сайте. :-)

Ресурс очень классный, но давно не обновлялся и на русский перевода нет.

2 Анонимный пишет...
Расскажите пожалуйста про надписи на русском языке с utf8
Народ ставит гнуплот 4.3, а у меня 4.0 и кои8, поэтому никаких проблем у меня нет. Я сторонник поговорки "лучшее - враг хорошего".

Анонимный комментирует...

Проблемы с PNG и русскими буквами под Windows. set encoding koi8r помогает только для postscript терминала. Может быть знаете как решить проблему?

Morgoth комментирует...

подскажите можно ли в ручную устанавливать размер рамки вокруг легенды?

Анонимный комментирует...

Спасибо Вам за Ваши статьи!

Анонимный комментирует...

как вывести легенду над графиком (т.е. чтобы график её не пересекал)?

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.