显示图形并在gnuplot中同时保存到文件

时间:2015-05-19 00:57:19

标签: 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窗口中显示的图形?我注意到有复制到剪贴板按钮但没有保存。

2 个答案:

答案 0 :(得分:6)

如果您要将图表同时发送到文件和交互式终端,例如x11wxt,则在更改终端后会有replot

set terminal png
set output 'file.png'

plot sin(x)

set terminal x11
set output
replot

如果您不想明确设置x11终端,而是使用默认终端,无论它是什么,您都可以使用特殊终端pushpop以便保存并恢复终端:

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

为了使其更加透明并在将其绘制到交互式终端后保存任何图像,您可以定义一个gnuplot脚本export.gp,然后您可以call并将输出文件名作为参数。< / p>

export.gp脚本是

set terminal push
set terminal pngcairo
set output '$0'

replot
set output
set terminal pop

然后您可以将其用作

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

但请注意,导出的文件和交互式窗口中显示的图表会有所不同,但如果您使用wxt作为交互式文件,pngcairopdfcairo作为输出终端,机会很高,显示和导出的图像非常相似。

使用gnuplot 5.0,qtwxt终端提供了一个“导出”按钮,可以将窗口中显示的图像精确保存为svg,pdf或png文件。遗憾的是,尚未从脚本调用此功能,即没有export命令。

答案 1 :(得分:0)

gnuplot - How can I save a graphics file of a plot that is the same as I designed it in xterminal?中也给出了很好的答案。 对于 x11 终端可以使用

system("xwd -id ".GPVAL_TERM_WINDOWID." | convert xwd:- screenshot.png")

也可以包裹成捷径

bind "Ctrl-c" 'system("xwd -id ".GPVAL_TERM_WINDOWID." | convert xwd:- png:- | xclip -sel clip -t image/png")'

所以你绘制图像

set term x11
plot sin(x)/x

然后在绘图窗口中按 Ctrl+c。就在这里,我用 Ctrl+v 粘贴了图像:

不幸的是,它不适用于 qtwxtGPVAL_TERM_WINDOWIDx11 相关联)。它们有剪贴板按钮,但快照不可编写脚本。