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

gnuplot-多个打印文件使用相同的样式设置,但打印线的数量不同?,gnuplot,Gnuplot,这是我的问题:我有4个不同的数据文件;我需要使用这些文件中的数据在png上创建各种绘图 我希望在脚本中调用的函数中包含所有内容,因此我希望尽可能多地组合公共语句 绘图具有不同的文件名,但它们使用的设置基本相同:图例位置、标题、轴标签、范围、边框线样式 变化是来自不同数据文件的数据、同一绘图上的行数(例如,有些有一组数据,其他的每个绘图有4-5行),以及区分它们的颜色 有没有一种干净的方法来对相似的内容进行分组,这样我就不会为我的每一个情节写同样的东西了?我已经检查了文件,但我无法找到解决方案;因

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

我希望在脚本中调用的函数中包含所有内容,因此我希望尽可能多地组合公共语句

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

变化是来自不同数据文件的数据、同一绘图上的行数(例如,有些有一组数据,其他的每个绘图有4-5行),以及区分它们的颜色

有没有一种干净的方法来对相似的内容进行分组,这样我就不会为我的每一个情节写同样的东西了?我已经检查了文件,但我无法找到解决方案;因为样式是为每个数据集设置的,所以我实际上无法对其进行分组

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

我使用shell脚本编写代码;因此,我将gnuplot命令包装在一个shell函数中


谢谢

您可以将所有常用设置放在一个文件中(比如
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
中包含任何类型的测试和条件。另一种可能是使用
调用
命令。

将所有常用命令放在一个单独的文件中,并使用
加载“settings.gp”
。谢谢!例如,如果绘图有5行,第二个绘图有2行;使用具有7种线样式的gp文件,会导致每个绘图按特定顺序采用线样式吗?集合输出的名称呢?作为旁注,我刚刚发现大括号IF语句只适用于更新版本的Gnuplot;也没有其他IF语句;所以,如果您想指定多个样式,您需要编写单个IF语句。对,这需要4.6。我在答案上加了个便条,谢谢。