2010-09-14 2 views
4

Можно ли передать данные графика в строку?gnuplot plot from string

Я имею в виду что-то вроде этого:

plot "09-13-2010,2263.80 09-14-2010,2500" using 1:2 with lines 

ответ

4

Это можно сделать что-то вроде:

set xdata time 
set timefmt "%m-%d-%y"  
plot "< echo '09-13-2010,2263.80 09-14-2010,2500' | tr ' ' '\n' | tr ',' ' '" using 1:2 with lines 

Где < символ указывает на GNUPLOT, что мы хотим, чтобы наш вход с выходом команда. Gnuplot разделяет записи с помощью новой строки. Группы записей разделяются пустой записью. Внутри записи разделитель столбцов по умолчанию представляет собой пробел. В приведенном выше примере tr используется для разделения ваших данных на строки и переписывания строк в записи.

Другой способ построения данных из строки - использовать спецификатор ввода «-», а затем загрузить данные из командной строки. Программа может легко испускают следующее:

set xdata time 
set timefmt "%m-%d-%y" 
plot '-' using 1:2 with lines 
09-13-2010 2263.80 
09-14-2010 2500 
e 

Лучше всего использовать входной файл, как:

09-13-2010 2263.80 
09-14-2010 2500 

Предполагая, что входной файл называется mydata.txt, то вы можете построить его с помощью команд:

set xdata time 
set timefmt "%m-%d-%y" 
plot 'mydata.txt' using 1:2 with lines 

Все приведенные выше примеры дают вам что-то вроде: alt text

Если вы хотите построить две серии данных с использованием даты и '-»вход вы можете сделать следующее:

set xdata time 
set timefmt "%m-%d-%y" 
plot '-' using 1:2 title "Series 1" with lines,'-' using 1:2 title "Series 2" with lines 
09-13-2010 2263.80 
09-14-2010 2500 
e 
09-13-2010 2500 
09-14-2010 2263.80 
e 

Предыдущий пример дает: alt text

+0

И есть способ построить таким образом, : участок '-' с использованием 1: 2 с линиями ... две функции? Я три, чтобы отделить это с комой, но это не сработало. – czerasz

+0

Вам нужно установить полную спецификацию использования для каждой функции. Проверьте «файл данных справки» в справочной системе Gnuplot. Я добавил пример выше. –