如何将图表保存到文件中并将其打印显示?我试过了:
#!/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窗口中显示的图形?我注意到有复制到剪贴板按钮但没有保存。
答案 0 :(得分:6)
如果您要将图表同时发送到文件和交互式终端,例如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
并将输出文件名作为参数。< / 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
作为交互式文件,pngcairo
或pdfcairo
作为输出终端,机会很高,显示和导出的图像非常相似。
使用gnuplot 5.0,qt
和wxt
终端提供了一个“导出”按钮,可以将窗口中显示的图像精确保存为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 粘贴了图像:
不幸的是,它不适用于 qt
或 wxt
(GPVAL_TERM_WINDOWID
与 x11
相关联)。它们有剪贴板按钮,但快照不可编写脚本。