2012-05-29 4 views
1

Допустим, у меня есть файл данных с тремя столбцами. Я хочу иметь возможность менять метки оси x. После небольшого поиска в Google я нашел xticlabels(), но проблема в том, что в качестве аргумента кажется, что в качестве аргумента используется номер столбца. Для иллюстрации с xticlabels(3) маркируются метки с третьим столбцом.Как указать пользовательский строковый аргумент для xticlabels в gnuplot?

Я хочу, чтобы в качестве аргумента для этой функции было помещено что-то вроде $1+$2, т. Е. Метка должна быть конкатенацией столбцов1 и столбца2.

Как это сделать?

ответ

4

Вы можете использовать AWK ...

plot "<awk '{print $1,$2,$1 $2}' datafile" u 1:2:xticlabels(3) 

Конечно, это глупый пример, потому что мы конкатенации 2 (цифровые) поля для создания этикеток - Сомнительно, что это то, что вы хотите, но он показывает, как объединить два поля (как строки) в awk, и это действительно все, что вам нужно.

В качестве альтернативы, вы можете, вероятно, коаксиальный кабель GNUPLOT, чтобы сделать это (непроверенных) с каким-то вариантом следующим:

plot 'datafile' u 1:2:(xticlabels(stringcolumn(1).stringcolumn(2))) 
+0

stringcolumn() работает, и это то, что я искал. Кстати, пример не очень глупый, так как файл данных также может содержать строковые поля, а не только цифры. спасибо :) – Neal

+0

это можно сделать из awk, но второе решение - аккуратно! – Neal

+0

Я рад узнать, что второе решение работает (и немного удивлено) - вещи обычно не работают хорошо, если они не проверены;). – mgilson