Показать график на дисплее и сохранить его в файл одновременно в gnuplot

Как сохранить график в файл, а также распечатать его для отображения? Я пробовал:

#!/usr/bin/gnuplot -p

date=system("date +%F_%T | sed 's/:/-/g'")

set term png
set output date.".png"

set term x11
set out

plot sin(x)

PS: есть ли возможность сохранить график, который отображается в окне gnuplot? Я заметил, что есть кнопка копировать в буфер обмена, но нет сохранения.

1 ответов


если вы хотите отправить сюжет как в файл, так и в интерактивный терминал, например x11 или wxt у вас replot после того, как вы поменяли терминал

set terminal png
set output 'file.png'

plot sin(x)

set terminal x11
set output
replot

если вы не хотите устанавливать x11 терминал явно, но скорее используйте терминал по умолчанию, что бы это ни было, вы можете использовать специальные терминалы push и pop так сохранить и восстановить терминал:

set terminal push
set terminal pngcairo
set output 'file.png'
plot sin(x)
set terminal pop
set output
replot

чтобы сделать это более прозрачным и сохранить любое изображение после того, как вы нанесли его на интерактивный терминал вы можете определить скрипт gnuplot export.gp который вы можете тогда call и дать имя выходного файла в качестве параметра.

на export.gp скрипт

set terminal push
set terminal pngcairo
set output ''

replot
set output
set terminal pop

который вы можете использовать как

plot sin(x)
call 'export.gp' 'test.png'

обратите внимание, однако, что экспортированный файл и график, показанный в интерактивном окне, будут отличаться, но если вы используете wxt интерактивные и pngcairo или pdfcairo как выходные клеммы, шансы довольно высоки, что отображается и экспортированные изображения очень похожи.

С gnuplot 5.0 qt и wxt терминалы предлагают кнопку "Экспорт", чтобы сохранить точно изображение, показанное в окне в виде svg, pdf или png файлов. К сожалению, эта функциональность еще не может быть вызвана из скрипта, т. е. нет .