让我们说我有以下简单的gnuplot文件:
set term pdf
set output "test.pdf"
plot\
sin(x),\
cos(x),\
0.5
现在我只想暂时用cos(x),\
评论该行。
但是,使用注释字符#会导致错误的gnuplot命令。
我正在寻找一种不移动代码行的解决方案。我只想使用编辑器的切换注释功能。
答案 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
的值为0
或1
。
在第一种情况下(即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)" : ''