如何解决gnuplot:plot命令中的变量值和定义
我偶然发现了以下内容:
根据gnuplot手册,plot元素可能包含定义。
Syntax:
plot {<ranges>} <plot-element> {,<plot-element>,<plot-element>}
Each plot element consists of a deFinition,a function,or a data source
together with optional properties or modifiers:
plot-element:
{<iteration>}
<deFinition> | {sampling-range} <function> | <data source>
| keyentry
{axes <axes>} {<title-spec>}
{with <style>}
检查以下示例:
为什么gnuplot忽略第二张图的a=1
?
我误会了吗?
代码:
### deFinitions in plot command
reset session
a = 1
b = 1
f(x) = a*x + b
set yrange[-40:40]
set multiplot layout 1,3
plot f(x)
plot f(x),a=2 f(x),a=3 f(x)
plot a=1 f(x),a=3 f(x)
unset multiplot
### end of code
结果:
解决方法
您的诊断略有下降。在第二个面板中,第一个紫色图与a = 3图而不是a = 2图叠加。
为什么?因为gnuplot在实际绘制任何图元之前会先累积完整图的所有元素。这涉及在命令行上进行两次传递。一遍分析和加载来自提到的任何数据源的数据(例如,需要自动缩放),然后第二遍评估范围内的任何函数(可能由自动缩放确定)。在第一遍过程中,将a设置为2,然后设置为3。在第二遍过程的开始,a仍为3,并且在没有初始定义可更改的情况下进行更改,这是计算f(x)时使用的定义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。