SDs*_*lar 3 graphics plot gnuplot
我制作情节已经有一段时间了,它们在屏幕上的表现正是我喜欢的方式。这些数据来自与太阳能收集和存储相关的传感器。
在屏幕上绘制的它们看起来很棒,所以我进行了屏幕区域捕获来保存它们。
所以现在我想自动化保存过程。
这是我到目前为止所做的:
但是,通过使用 .PNG,图像看起来不一样。我真的认为 png 将是最好的选择,但事实证明,用于 X 轴(HH:MM 刻度)的字体太粗并且它们一起运行。它看起来像是我的情节设计的蜡笔绘制版本。
有人可以给我一些指导,告诉我如何最好地以编程方式生成保存图,使它们看起来像我设计的那样吗?
正如上面评论中指出的,最好的方法可能是使用不同的终端输出到图像文件,并忽略生成的图像与使用 x11 终端时在屏幕上看到的图像不同的事实。但是,如果您确实需要精确的副本,(至少)有两个选择:
您可以自动化截取屏幕截图的过程。GPVAL_TERM_WINDOWID您甚至可以在 gnuplot 中执行此操作,变量包含当前绘图窗口的 X Windows ID,这可能会很方便。绘制绘图后,您可以使用它来制作窗口的屏幕截图:
system(sprintf("xwd -id 0x%x | convert xwd:- screenshot.png", GPVAL_TERM_WINDOWID))
Run Code Online (Sandbox Code Playgroud)
这里我包含了一个将convertxwd 文件格式转换为 png 的调用。
另一种选择是使用终端,它保存帮助应用程序将命令序列转换为您在屏幕上看到的窗口xlib的命令序列。gnuplot_x11例如,
set term push; set term xlib; set output "file.xlib"; replot; set output; set term pop
Run Code Online (Sandbox Code Playgroud)
file.xlib将创建包含最后一个绘图的所有信息的文件。要稍后查看该图,请使用
gnuplot_x11 -noevents -persist < file.xlib
Run Code Online (Sandbox Code Playgroud)
您可能必须在其中指定gnuplot_x11.