GNUPLOT

- not so Frequently Asked Questions -

update 2004/9/15

Данные даты/времени

Построение данных временной последовательности

Для построения файла данных, который содержит данные даты и времени, необходимо указать в Gnuplot тип данных даты/времени командой set xdata time или set ydata time , а затем указать формат файла set timefmt , как показанно в следующем примере:

2004-02-09  310
2004-02-10  185
2004-02-11  239
2004-02-12  132
2004-02-13   85
2004-02-14   57
2004-02-15    8

Соответствующие для чтения данные timefmt"%Y-%m-%d". В этом случае случае, если значения месяца или даты меньше 10, то нуль перед числом не пишется (например 2004-2-9).

gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d"
gnuplot> plot "sample.dat" using 1:2 with boxes
fig/sampleS1.1.png

Чтение даты/времени в Gnuplot является достаточно универсальным. Вот некоторые примеры ддя формата timefmt.

data timefmt comment
2004/4/6 %Y/%m/%d 2004/04/06 works well
December/96 %B/%y warning if mis-spelled
2004/Jan %Y/%b 3-letters abbreviation
1970/240 %Y/%j "%j" is a day of the year (1-365)
02:45:03 %H:%M:%S "%H", 24-hour
1076909172 %s seconts since 1/1/1970 00:00
up

К изменению выходного текста

Когда Gnuplot читает данные формата дата/время оси X, то он генерирует соответствующие деления X автоматически. В приведенном выше примере,данные последовательности времени представленны в течение одной недели, Gnuplot пишет "месяц/день" на оси X, плюс время "00:00", которое может и не быть нужным. Для контроля выходного формата используется set format . Этотт формат специфицированне как обычные численные выходы, но этот формат уведомляет об удаленных библиотеках библиотеки UNIX.

gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d"
gnuplot> set format x "%b/%a"
gnuplot> plot "sample.dat" using 1:2 with boxes
fig/sampleS2.1.png

В дополнение к симольному формату, описанному выше, можно использовать "%a", не существующий в timefmt . С форматом "%a" Gnuplot дает название дня недели. См. подробно руководство по strftime функции. Во всяком случае форматы "Y, y, m, d, H, M, S" достаточны почти во всех случаях.


up