gpt4 book ai didi

conditional - gnuplot 引用 line2 的符号更改 line1 的颜色

转载 作者:行者123 更新时间:2023-12-02 00:02:41 34 4
gpt4 key购买 nike

我的数据中有 3 列。第一个是约会。我想绘制第二列,但根据第三列中的值更改其颜色。

If 3rd column is:
Positive: Black
Negative: Red
zero: Yellow

这就是我正在尝试的:

set palette model RGB defined ( 0 'yellow', 1 'red', 2 'black' )
plot "output2.txt" u 1:2:( $3 < 0 ? 1 : ( $3 > 0 ? 2 : 0 ) ) w lines palette axes x1y1

但我从来没有得到红色,即使第 3 列有负数。

编辑 1

有时我也让它工作,但在这种情况下它不工作:

$ cat t.txt
1 1 1000000
2 2 1000000
3 3 1000000
4 4 -1000000
5 5 -1000000
6 6 -1000000
7 7 -1000000

这是我的 gnu 脚本:

$ cat test.gnu
set terminal wxt size 1500,900
set style fill transparent solid 0.50 noborder
set key font ",6"
set palette model RGB defined ( 0 'yellow', 1 'red', 2 'black' )
plot "t.txt" u 1:2:( $3 < 0 ? 1 : ( $3 > 0 ? 2 : 0 ) ) w lines palette axes x1y1

这就是我在 cygwin 中的调用方式:

~/wgnuplot -e "load \"test.gnu\"" -persist

这是结果(黄线应该是红色的):

enter image description here

最佳答案

而不是调色板,我会使用linecolor variable:

plot 'test.txt' u 1:2:($3 < 0 ? 2 : ( $3 > 0 ? 3 : 1 )) w lines lc variable

从您的三元运算符表达式 (1, 2, 3) 返回的数字应与您设置的线型相对应。

在这种情况下,我认为是:

set style line 1 lc rgb "yellow"
set style line 2 lc rgb "red"
set style line 3 lc rgb "black"

(使用以下数据测试):

1 2 3
2 2 3
3 2 0
4 2 0
5 2 12
6 2 -15
7 2 -23

请注意,如果您有高度采样的数据,这会很有效。由于线段的颜色是根据文件中遇到的第二个端点处的数据值着色的,因此采样不佳的数据可能会导致图表看起来很有趣。

就其值(value)而言,如果我使用,我会得到相同的结果:

set palette defined (1 'yellow', 2 'red', 3 'black')
plot 'test.txt' u 1:3:($3 < 0 ? 2 : ( $3 > 0 ? 3 : 1 )) w lines lc palette z

(这次只有颜色条和键)。

关于conditional - gnuplot 引用 line2 的符号更改 line1 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20420227/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com