gpt4 book ai didi

conditional-statements - gnuplot,如何仅标记某些点?

转载 作者:行者123 更新时间:2023-12-02 13:32:21 25 4
gpt4 key购买 nike

我使用以下 gnuplot 命令来创建绘图:

#!/bin/bash
gnuplot << 'EOF'
set term postscript portrait color enhanced
set output 'out.ps'

plot 'data_file' u 3:2 w points , '' u 3:2:($4!=-3.60 ? $1:'aaa') w labels

EOF

其中 data_file 如下所示:

  O4     -1.20     -0.33     -5.20  
O9.5 -1.10 -0.30 -3.60
B0 -1.08 -0.30 -3.25
B0.5 -1.00 -0.28 -2.60
B1.5 -0.90 -0.25 -2.10
B2.5 -0.80 -0.22 -1.50
B3 -0.69 -0.20 -1.10

我希望 gnuplot 使用 1 列中找到的字符串标记所有点,除了4 所在的点code> 等于 -3.60 在这种情况下我想要 aaa 字符串。我得到的是 $4=-3.60 数据点被正确标记为 aaa,但其余数据点根本没有被标记.

<小时/>

更新:gnuplot 使用条件语句将数字 显示为标签没有问题,即:除 1 之外的任何列都正确显示为尊重所施加条件的每个点的标签。也就是说,此行将列 2(数字)显示为符合条件语句的点标签:

plot 'data_file' u 3:2 w points , '' u 3:2:($4!=-3.60 ? $2:'aaa') w labels

更新2:如果我将其绘制为整体,则将列1绘制为点标签也没有问题,即不使用条件语句。也就是说,此行正确绘制了 1 列(字符串)中的所有点标签:

plot 'data_file' u 3:2 w points , '' u 3:2:1 w labels
<小时/>

很明显,问题在于将条件语句与字符串列一起使用。这些单独使用的任何一个都可以正常工作。

最佳答案

也许以一种更干净的方式,这应该可行。如果未将其转换为字符串,标签似乎无法显示计算出的数字。

#!/bin/bash
gnuplot << 'EOF'
set term postscript portrait color enhanced
set output 'out.ps'

plot 'data_file' u 3:2 w points , '' u 3:2:($4!=-3.60 ? sprintf("%d",$1):'aaa') w labels

EOF

关于conditional-statements - gnuplot,如何仅标记某些点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228714/

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