Gnuplot:禁用部分绘图命令
假设我有以下简单的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
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脚本。