%center%
Допустим, файл first.dat
содержит два столбца данных: t
(например, время) и x1
(значения некой функции)
# first.dat
# t x1
0 0.5
0.001 0.49975
0.002 0.499
0.003 0.497752
0.004 0.496005
0.005 0.493763
0.006 0.491027
0.007 0.4878
0.008 0.484085
0.009 0.479886
... ...
Аналогично устроен файл second.dat
– те же значения t
и новые данные x2
# second.dat
# t x2
0 0.5
0.001 0.4995
0.002 0.498501
0.003 0.497002
0.004 0.495007
0.005 0.492517
0.006 0.489535
0.007 0.486063
0.008 0.482105
0.009 0.477665
... ...
Нужно построить разность этих графиков x1
-x2
с помощью gnuplot.
gnuplot свободно построит разность графиков, но – только тогда, когда все данные будут помещаться в одном файле. Здесь на помощь приходят команды Unix: join и paste.
Используя join
join first.dat second.dat > data1.dat
получим в результате файл data1.dat
следующего вида
0 0.5 0.5
0.001 0.49975 0.4995
0.002 0.499 0.498501
0.003 0.497752 0.497002
0.004 0.496005 0.495007
0.005 0.493763 0.492517
0.006 0.491027 0.489535
0.007 0.4878 0.486063
0.008 0.484085 0.482105
0.009 0.479886 0.477665
... ... ...
Теперь разность между столбцами данных можно нарисовать с помощью gnuplot:
gnuplot> plot 'data1.dat' using 1:($2-$3)
Обратите внимание, что в файле data1.dat
столбец t
фигурирует только один раз, что особенно полезно в нашей задаче.
К сожалению, join может объединить данные только из двух файлов, так что если файлов больше, ее придется вызывать несколько раз. Этого недостатка лишена команда paste
paste first.dat second.dat > data2.dat
Она просто соединяет указанные файлы построчно. То есть, data2.dat
будет выглядеть так:
0 0.5 0 0.5
0.001 0.49975 0.001 0.4995
0.002 0.499 0.002 0.498501
0.003 0.497752 0.003 0.497002
0.004 0.496005 0.004 0.495007
0.005 0.493763 0.005 0.492517
0.006 0.491027 0.006 0.489535
0.007 0.4878 0.007 0.486063
0.008 0.484085 0.008 0.482105
0.009 0.479886 0.009 0.477665
... ... ...
А рисование gnuplot-ом выполняется так:
gnuplot> plot 'data2.dat' using 1:($2-$4)
Для Windows быстро найти программы, аналогичные paste или join, не удалось. Для объединения пары файлов можно использовать Word: вставить в него столбцы данных из одного файла, преобразовать в таблицу, добавить к ней пустые столбцы, в них — данные из другого файла, а результат — преобразовать в текст (Макет -> Преобразовать в текст).
Комментарии
comments powered by Disqus