这是我的问题:我有4个不同的数据文件;我需要使用这些文件中的数据在png上创建各种图。
我想将所有函数都放在一个脚本中调用的函数中,所以我想把尽可能多的常用语句放在一起。
图表具有不同的文件名,但它们大多使用相同的设置:图例位置,标题,轴标签,范围,边框线样式。
来自不同数据文件的数据发生了什么变化,同一图表上的行数(一些数据库有一组数据,其他数据库有4-5个数据),以及用于区分它们的颜色。 / p>
是否有一种干净的方法可以对相似的内容进行分组,所以我最终不会为每个情节编写相同的内容?我检查了文档,但我无法找到解决方案;因为为每个数据集设置了样式,所以我无法对它进行分组。
在这里发现一些类似的问题,但问题完全不同......我不需要合并来自不同数据集的数据,但我需要创建不同的绘图文件,它们只共享大多数常见设置。为了做一个通用的例子,我需要一种方法来做类似CSS样式的文件,所以样式保持不变,但是图的内容(以及文件的名称)会发生变化。
我正在使用shell脚本代码;所以我在shell函数中包装了一个gnuplot命令。
由于
答案 0 :(得分:6)
您可以将所有常用设置放在一个文件中(例如settings.gp
),然后使用load 'settings.gp'
从主文件中加载它们。这就好像您将编写实际命令代替load
命令一样。因此,您可以在加载设置文件之前定义一些变量以更改行为。
档案settings.gp
:
set terminal pngcairo
set output outfile
set style increment user
if (plotNum == 2) {
set style line 1 lt 5
set style line 2 lt 6
} else {
set for [i=1:5] style line i lt i+2
}
(注意,这种if
语句需要gnuplot版本4.6及更新版本。
档案main.gp
outfile = 'first.png'
plotNum = 2
load 'settings.gp'
plot x, x**2
命令set style increment user
自动遍历行样式而不是plot
命令中的行类型。
这当然只是一个例子,基本上你可以在settings.gp
中包含任何类型的测试和条件。另一种可能性是使用call
命令。