gnuplot - 如何保存与我在xterminal中设计的图形文件相同的图形文件?

时间:2017-06-10 01:03:59

标签: plot graphics gnuplot

我现在已经制作了一段时间的情节,它们正是我喜欢的方式,在屏幕上。这些数据来自与太阳能收集和存储相关的传感器。

在屏幕上绘制它们看起来很棒所以我会进行屏幕区域捕获以保存它们。

所以现在我想自动化保存过程。

这是我到目前为止所做的:

  • 我设置了一个cron作业,这样他们就可以在午夜运行,捕获整天并将其保存为.png文件
  • 然后将“today.dat”数据文件移动到按日期命名的存档。
  • 这部分全部按设计工作。

除了使用.PNG之外,图像看起来不一样。 我真的认为png是最好的选择,但事实证明用于X轴(HH:MM刻度)的字体太厚而且它们一起运行。它看起来像我的情节设计的蜡笔画版本。

有人可以给我一些关于如何以编程方式生成保存图的指导,以便它们看起来像我设计它们的方式吗?

2 个答案:

答案 0 :(得分:3)

正如上面的评论所指出的,最好的方法可能是使用不同的终端输出到图像文件,而忽略了这样一个事实,即生成的图像与您在使用屏幕时在屏幕上看到的图像不同。 x11终端。但是,如果确实需要精确副本,则至少有两个选项:

  1. 您可以自动执行截屏过程。您甚至可以在gnuplot中执行此操作,因为GPVAL_TERM_WINDOWID变量包含当前绘图窗口的X Windows ID可能会很方便。制作完剧情后,您可以使用它来制作窗口的屏幕截图:

    system(sprintf("xwd -id 0x%x | convert xwd:- screenshot.png", GPVAL_TERM_WINDOWID))
    

    此处我调用convert将xwd文件格式转换为png。

  2. 另一种选择是使用xlib终端,它保存gnuplot_x11帮助应用程序转换到您在屏幕上看到的窗口的命令序列。例如,

    set term push; set term xlib; set output "file.xlib"; replot; set output; set term pop
    

    将创建包含最后一个绘图的所有信息的文件file.xlib。要稍后查看此图,请使用

    gnuplot_x11 -noevents -persist < file.xlib
    

    您可能需要指定gnuplot_x11的路径。

答案 1 :(得分:0)

与@user8153 为x11 建议的类似,您可以使用import,它是convert 一个imagemagick 工具

system("import -window ".GPVAL_TERM_WINDOWID." screenshot.png")

Convenient 也是将图片复制到剪贴板并用 Ctrl+v 粘贴到别处的快捷方式:

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

另见Show graph on display and save it to file simultaneously in gnuplot