Gnuplot:禁用绘图命令的一部分

时间:2015-12-11 10:15:39

标签: gnuplot

让我们说我有以下简单的gnuplot文件:

set term pdf
set output "test.pdf"

plot\
    sin(x),\
    cos(x),\
    0.5

现在我只想暂时用cos(x),\评论该行。

但是,使用注释字符#会导致错误的gnuplot命令。

我正在寻找一种不移动代码行的解决方案。我只想使用编辑器的切换注释功能。

2 个答案:

答案 0 :(得分:4)

这是一种解决方法。您可以动态解析脚本以完全删除#行。使用grep

grep -v "#" script | gnuplot

会成功解析这个:

plot\
    sin(x),\
    #cos(x),\
    0.5

其中script是包含上述代码的文件的名称。

答案 1 :(得分:0)

尽管gnuplot不直接支持您的要求,但您可以构建一个解决方法。 由于gnuplot没有绘制未定义的值,这可能会起作用

identity = 0
#identity= 1
name=identity ? "cos(x)" : ''

plot sin(x), (1/identity)*cos(x) t name

根据您是否启用或关闭评论,变量identity的值为01
在第一种情况下(即identity = 0),(1/identity)(因此(1/identity)*cos(x))的结果未定义,gnuplot不会绘制它。
删除上述示例中的评论后identity将等于1。在这种情况下,(1/identity)的结果为1,因此(1/identity)*cos(x)cos(x)相同。

要显示正确的标题(identity = 1)或根本没有标题(如果identity=0),我添加了行name=identity ? "cos(x)" : ''