gnuplot缺少带有表达式计算的数据

gnuplot缺少带有表达式计算的数据,gnuplot,Gnuplot,我想使用gnuplot中的plot命令进行表达式求值,即 plot "-" using ($1):($2) with lines 1 10 2 20 3 ? 4 40 5 50 e 但我希望它忽略丢失的数据“?”,以这样的方式连接线路(并且不会在2和4之间中断)。 我试图设置数据文件丢失“?”, 但与在线帮助一致,它没有连接线路。以下选项可以,但我不能使用表达式求值: plot "-" using 1:2 with lines 1 10 2 20 3 ? 4 40 5 50 e 你知道如何连

我想使用gnuplot中的
plot
命令进行表达式求值,即

plot "-" using ($1):($2) with lines
1 10
2 20
3 ?
4 40
5 50
e
但我希望它忽略丢失的数据“?”,以这样的方式连接线路(并且不会在2和4之间中断)。
我试图
设置数据文件丢失“?”
, 但与在线帮助一致,它没有连接线路。以下选项可以,但我不能使用表达式求值:

plot "-" using 1:2 with lines
1 10
2 20
3 ?
4 40
5 50
e
你知道如何连接这些行并使用表达式求值吗?

两列数据 如果您设置了数据文件
data.csv

1 10
2 20
3 ?
4 40
5 50
可以使用连接线绘制数据

plot '<grep -v "?" Data.csv' u ($1):($2) w lp
可以在每个绘图的数据文件上运行脚本,如下所示:

plot "<awk '{if($2 != \"?\") print}' Data.csv" u ($1):($2) w lp, \
     "<awk '{if($3 != \"?\") print}' Data.csv" u ($1):($3) w lp

plot.”awk用户手册。

你能再描述一下你想要什么吗?你说的是使用数学表达式减号,还是从stdin(特殊文件名“-”)中读取?一些更真实的示例数据会很有帮助。特殊文件“-“仅在联机帮助示例中使用。它可以是用于二维绘图的gnuplot格式的任何数据文件。只需将这两列放在名为“data.dat”的文件中,并使用($1):($2)和行将命令转换为plot“data.dat”,或使用1:2和行将命令转换为plot“data.dat”。表达式求值意味着,我希望使用($1):($2/$1)绘制“data.dat”和行,这只有在括号存在的情况下才有意义。是的,但如果我有一个三列数据文件,其中第三列在我想要使用的第三行中有正确的数据,则这不起作用(按要求的方式)。诚然,上面给出的两列示例对此过于简单。但是如果我只有两列,当然有很多方法可以删除未知数据。
plot "<awk '{if($2 != \"?\") print}' Data.csv" u ($1):($2) w lp, \
     "<awk '{if($3 != \"?\") print}' Data.csv" u ($1):($3) w lp