GNUPLOT两个条件在一个三元

问题描述 投票:0回答:1

有一个表由四列,如

0.1   0.2   2   5
0.3   0.5   3   7 
0.2   0.9   4   8

0.5   0.2   5   5 

0.3   0.1   2   10

0.8   0.7   2   4

正如你所看到的,有空行。我想要做的就是让这个表中的情节,但我有两个条件。首先,列3和4被绘制仅当两个柱1和2,分别是小于0.4,所以在这种情况下,仅第一和第七行应作图。其次,空行应该被忽略。

轻松,我的情节不应该告诉我,没有价值观,这意味着该行4,6和7不应该对剧情显示的任何行。此外,第一条件必须得到满足。

所以我打这样的,

reset
plot 'table.txt' u ($1 < 0.4 || $1 == 1/0 ? $3 : 1/0):($2 < 0.4 || $2 == 1/0 ? $4 : 1/0) pt 7 ps 0.5

但我无法得到我想要的东西。只有两个点,第1行和7,应该弹出,但这些空行也被绘制。是|| (我用它作为意义“和”)错了吗?

gnuplot ternary
1个回答
0
投票

空行不反正绘制。所以,用你的三元运算符检查是否$1<0.4 && $2<0.4。如果是这样的情况下,将当前$4值到y0$3x0 ....和情节x0y0。如果你想有连接线,如with linespoints您可能需要采取一些更多操作。

### filter data values
reset session

$Data <<EOD
0.1   0.2   2   5
0.3   0.5   3   7 
0.2   0.9   4   8

0.5   0.2   5   5 

0.3   0.1   2   10

0.8   0.7   2   4
EOD

x0 = y0 = NaN
plot $Data u ($1<0.4 && $2<0.4 ? (y0=$4, x0=$3) : NaN):(y0) w p pt 7 ps 2
### end of code
© www.soinside.com 2019 - 2024. All rights reserved.