Gnuplot:禁用部分绘图命令

Gnuplot:禁用部分绘图命令,gnuplot,Gnuplot,假设我有以下简单的gnuplot文件: set term pdf set output "test.pdf" plot\ sin(x),\ cos(x),\ 0.5 现在我只想暂时用cos(x),\注释这行 但是,使用注释字符#会导致错误的gnuplot命令 我正在寻找一种不移动代码行的解决方案。我只想使用编辑器的切换注释功能。尽管gnuplot不直接支持您的要求,但您可能可以构建一个解决方案。 由于gnuplot不会绘制未定义的值,因此这可能会起作用 identit

假设我有以下简单的gnuplot文件:

set term pdf
set output "test.pdf"

plot\
    sin(x),\
    cos(x),\
    0.5
现在我只想暂时用
cos(x),\
注释这行

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


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

尽管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)”:“

这是一个解决方法。您可以动态解析脚本,以删除带有
#
的行。使用
grep

grep -v "#" script | gnuplot
将成功分析以下内容:

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

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

无法获取此信息,请看,这太糟糕了。我认为在评论中选择性地禁用行继续是对gnuplot的一个很好的扩展。邮件列表上也有讨论:实际上,我关于扩展gnuplot以选择性地禁用行继续的第一条评论不足以满足我的要求。还必须允许Gnuplot命令位于多行上,而无需行延续。这也是当前无效的gnuplot脚本。