Gnuplot - Использование replot с png-терминалом

Я пытаюсь использовать replot с png-терминалом в Gnuplot.

Если я сделаю следующее, я получу два графика на одном графике без каких-либо проблем:

plot sin(x)/x
replot sin(x)

Теперь, если сделать то же самое для типа png-терминала, полученный png файл содержит только первый график.

set terminal png
set output 'file.png'
plot sin(x)/x
replot sin(x)

Я что-то упустил в конце, чтобы получить второй сюжет в моем png файле?

Ответ 1

На самом деле это очень хороший вопрос, и поведение здесь зависит от терминалов. Некоторые терминалы (например, postscript) предоставят вам новую страницу для каждого replot. У вас есть несколько решений...

Первый вариант: вы можете сделать свой график до установки терминала/выхода, а затем снова установить его после установки терминала/выхода:

plot sin(x)/x
replot sin(x)
set terminal png
set output 'file.png
replot

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

Второй (лучший) вариант. Вы можете упаковать несколько графиков в одну команду, разделяя каждую запятую.

set terminal png
set output 'file.png'
plot sin(x)/x, sin(x)

Я очень предпочитаю второй способ - когда в среде мультипликации это единственный способ поместить несколько графиков на один и тот же сюжет. Если у вас есть очень длинные функции для построения графика, вы можете разбить линию с продолжением строки gnuplot (\ в конце строки - после \, даже не пробела ничего не разрешено)

plot sin(x)/x with lines linecolor rgb "blue" linetype 7 lineweight 4, \
     sin(x),                                                           \
     cos(x)