在显示器上显示图形,并在gnuplot中将其同时保存到文件中
如何将图形保存到文件中并将其打印以显示?我试过:在显示器上显示图形,并在gnuplot中将其同时保存到文件中,gnuplot,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窗口中显示的图形?我注意到有“复制到剪贴板”按钮,但没有“保存”按钮。如果您想将绘图同时发送到文件和交互式终端,如x11或wxt,则在更改
#!/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窗口中显示的图形?我注意到有“复制到剪贴板”按钮,但没有“保存”按钮。如果您想将绘图同时发送到文件和交互式终端,如
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
,然后调用该脚本并将输出文件名作为参数
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
用作交互,并将pngcairo
或pdfcairo
用作输出终端,则显示和导出的图像非常相似的可能性很大
使用gnuplot 5.0,
qt
和wxt
终端提供一个“导出”按钮,将窗口中显示的图像准确地保存为svg、pdf或png文件。不幸的是,此功能还不能从脚本调用,即没有导出命令。中也给出了一个很好的答案。
对于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粘贴了图像:
不幸的是,它不适用于
qt
或wxt
(GPVAL\u TERM\u WINDOWID
与x11
关联)。它们有剪贴板按钮,但快照不可编写脚本。因为版本5 gnuplot为qt
和wxt
终端提供了一个保存按钮。你好,Christoph,有没有办法让它适用于gnuplot 4.6 patchlevel 0?我们在2017年7月使用版本5.0 patchlevel 3,约会这件事给我解决了一个大问题。我不知道日期+%F(我只需要日期,因为我只在收集当天数据后的午夜才这样做),也不知道如何在gnuplot中连接以生成文件名。对我来说,这一切都是自动化的,使用mcron将事情的时间缩短到第二秒。杰出的我向你致敬。谢谢。谢谢你提供的关于推送和弹出的信息。我不知道那件事。我经常使用重读来显示我的可见图。但这是一种全新的方式。然而,我的不断重读。我不知道雷波特的事。我将不得不对此进行研究,因为我可能不希望它像重读一样不断地重复。需要指出的是:如果有multiplot
,则对单个绘图进行replotting可以正常工作,因为replot
只会重新打印multiplot环境的最后一个绘图。