gnuplot - 使用相同样式设置但不同数量的绘图线的多个绘图文件?

时间:2014-03-21 10:22:39

标签: gnuplot

这是我的问题:我有4个不同的数据文件;我需要使用这些文件中的数据在png上创建各种图。

我想将所有函数都放在一个脚本中调用的函数中,所以我想把尽可能多的常用语句放在一起。

图表具有不同的文件名,但它们大多使用相同的设置:图例位置,标题,轴标签,范围,边框线样式。

来自不同数据文件的数据发生了什么变化,同一图表上的行数(一些数据库有一组数据,其他数据库有4-5个数据),以及用于区分它们的颜色。 / p>

是否有一种干净的方法可以对相似的内容进行分组,所以我最终不会为每个情节编写相同的内容?我检查了文档,但我无法找到解决方案;因为为每个数据集设置了样式,所以我无法对它进行分组。

在这里发现一些类似的问题,但问题完全不同......我不需要合并来自不同数据集的数据,但我需要创建不同的绘图文件,它们只共享大多数常见设置。为了做一个通用的例子,我需要一种方法来做类似CSS样式的文件,所以样式保持不变,但是图的内容(以及文件的名称)会发生变化。

我正在使用shell脚本代码;所以我在shell函数中包装了一个gnuplot命令。

由于

1 个答案:

答案 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命令。