5 gnuplot
这是我的问题:我有4个不同的数据文件; 我需要使用这些文件中的数据在png上创建各种图.
我想将所有函数都放在一个我在脚本中调用的函数中,所以我想把尽可能多的常用语句放在一起.
该图具有不同的文件名,但它们大多使用相同的设置:图例位置,标题,轴标签,范围,边框线样式.
来自不同数据文件的数据有什么变化,同一图表上的行数(例如,一些数据集为1组,其他数据为每个图4-5),以及区分它们的颜色.
是否有一种干净的方式来分组相似的东西,所以我最终不会为我的每个情节写相同的东西?我检查了文档,但我无法找到解决方案; 因为为每个数据集设置了样式,所以我无法对它进行分组.
在这里发现了一些类似的问题,但问题完全不同......我不需要合并来自不同数据集的数据,但我需要创建不同的绘图文件,它们只共享大多数常见设置.为了做一个通用的例子,我需要一种方法来做类似CSS样式的文件,所以样式保持不变,但是图的内容(和文件的名称)会发生变化.
我使用shell脚本代码; 所以我在shell函数中包装了一个gnuplot命令.
谢谢
您可以将所有常用设置放在一个文件中(比如说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
}
Run Code Online (Sandbox Code Playgroud)
(注意,这种if语句需要gnuplot 4.6及更新版本).
文件 main.gp
outfile = 'first.png'
plotNum = 2
load 'settings.gp'
plot x, x**2
Run Code Online (Sandbox Code Playgroud)
该命令set style increment user自动迭代线条样式而不是plot命令中的线条类型.
这当然只是一个例子,基本上你可以包括任何类型的测试和条件settings.gp.另一种可能性是使用该call命令.