gnuplot, как пометить только определенные точки?

Я использую следующие 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равен -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

Очевидно, что проблема заключается в использовании условного оператора вместе со строковым столбцом. Любой из них, используемый отдельно, работает просто отлично.

7
задан tshepang 10 September 2014 в 20:55
поделиться