我试图在(bash heredoc / script for)gnuplot中进行分段线性拟合。我试过这个:
plot "datafile1" u 1:2:6:7:10:11 with xyerrorbars,\
"datafile1" u 1:4:8:9:10:11 with xyerrorbars,\
"datafile2" u 1:2:3 with xyerrorbars,\
[xmin:xmax] f(x)
但它返回无效的表达式错误。任何想法为什么会失败?
注意 - fit [xmin:xmax] f(x)
不会返回任何错误消息(因此我认为它有效)。
GNUPLOT 4.4.3
答案 0 :(得分:1)
您只能在plot
命令的开头指定范围。此范围适用于此plot
命令的以逗号分隔的所有部分。所以你可以使用
plot [xmin:xmax] f(x),\
"datafile1" u 1:2:6:7:10:11 with xyerrorbars
但这也会将[xmin:xmax]
范围应用于datafile1
。如果您只想限制f(x)
的范围,则必须定义一个在所需范围之外无效(1/0
)的函数:
plot "datafile1" u 1:2:6:7:10:11 with xyerrorbars,\
"datafile1" u 1:4:8:9:10:11 with xyerrorbars,\
"datafile2" u 1:2:3 with xyerrorbars,\
(x > xmin && x < xmax) ? f(x) : 1/0
请注意,您的原始命令将在即将发布的gnuplot 5.0版中运行