我已经制作情节一段时间了,它们正是我喜欢的方式,在屏幕上。 数据来自与太阳能收集和存储相关的传感器。
在屏幕上绘制它们看起来很棒,所以我做了一个屏幕区域捕获来保存它们。
所以现在我想自动化保存过程。
这是我到目前为止所做的:
- 我设置了一个 cron 作业,这样它们就会在午夜运行,捕获一整天并将其保存为.png文件
- 然后,它将"今天.dat"数据文件移动到按日期命名的存档中。
- 这部分都按设计工作。
除了,通过使用.PNG图像看起来不一样。 我真的认为 png 是最好的选择,但事实证明,用于 X 轴(HH:MM 刻度)的字体太粗了,它们一起运行。 它看起来像我的情节设计的蜡笔画版本。
有人可以给我一些指导,告诉我如何最好地以编程方式生成要保存的绘图,使它们看起来像我设计它们的方式?
正如上面的评论中所指出的,最好的方法可能是使用不同的终端输出到图像文件,而简单地忽略生成的图像与您在使用 x11 终端时在屏幕上看到的图像不同。但是,如果您确实需要精确副本,则(至少)有两种选择:
-
您可以自动执行截屏过程。您甚至可以在 gnuplot 中执行此操作,
GPVAL_TERM_WINDOWID
变量包含当前绘图窗口的 X Windows ID 可能会派上用场。您可以在制作绘图后使用它来制作窗口的屏幕截图:system(sprintf("xwd -id 0x%x | convert xwd:- screenshot.png", GPVAL_TERM_WINDOWID))
在这里,我包括了一个调用
convert
,将 xwd 文件格式转换为 png。 -
另一种选择是使用
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
的路径。
与@user8153建议用于x11
类似,您可以使用import
,它convert
图像魔术工具
system("import -window ".GPVAL_TERM_WINDOWID." screenshot.png")
方便也是将图像复制到剪贴板并使用Ctrl+v将其粘贴到其他地方的快捷方式:
bind Ctrl-c 'system("import -window ".GPVAL_TERM_WINDOWID." png:- | xclip -sel clip -t image/png")'
另请参阅在显示时显示图形并将其同时保存到 gnuplot 中的文件。