Построение нескольких рядов из файла с использованием Gnuplot - PullRequest
4 голосов
/ 16 декабря 2011

У меня есть файл данных в форме:

Series_1 "12-Dec-2011 12:00" 32
Series_1 "12-Dec-2011 12:01" 29
Series_1 "12-Dec-2011 12:02" 27
Series_1 "12-Dec-2011 12:04" 23

Series_2 "12-Dec-2011 12:01" 45
Series_2 "12-Dec-2011 12:02" 43
Series_2 "12-Dec-2011 12:04" 38

, который я хотел бы отобразить как ряд рядов на одном графике, используя gnuplot, но я новичок в gnuplot иЯ не могу понять, как здесь следует структурировать предложение using.

Я хотел построить столбец 2, дату / время как ось X, а столбец 3 - как ось Y с наложением последующих секций.Это возможно?Конечно, ось X не всегда должна быть в первом столбце?

Я пытался:

plot "datafile.dat" using 2:3 title 'Hits'

Но получил ошибку:

x range is invalid

Может кто-нибудьпокажи мне, где я иду не так?

Ответы [ 2 ]

10 голосов
/ 16 декабря 2011

Расширяя ответ @ Woltan: если вы хотите, чтобы каждый раздел был другого цвета / стиля, используйте index (но тогда вам нужно разделить разделы двумя строками emtpy):

plot 'i' index 0 using 2:4 with lines, '' index 1 using 2:4 with lines
7 голосов
/ 16 декабря 2011

Чтобы построить график даты / времени на оси x, вам нужно set xdata time. Далее вам нужно указать gnuplot в каком формате данные даты / времени. В вашем случае

set timefmt "%d-%b-%Y %H:%M"

должен добиться цели. Некоторые примеры, а также %X -синонимы показаны здесь .

Возможно, вы захотите установить формат отображения оси x. В вашем случае возможно

set format x "%H:%M"

будет иметь смысл.

Мне не удалось отобразить ваши данные в кавычках вокруг даты / времени. С этим файлом данных ( Data.csv ):

Series_1 12-Dec-2011 12:00 32
Series_1 12-Dec-2011 12:01 29
Series_1 12-Dec-2011 12:02 27
Series_1 12-Dec-2011 12:03 23

Series_2 12-Dec-2011 12:01 45
Series_2 12-Dec-2011 12:02 43
Series_2 12-Dec-2011 12:04 38

и этот скрипт:

set xdata time
set timefmt "%d-%b-%Y %H:%M"
set format x "%H:%M"

plot "Data.csv" u 2:4 w l

вы должны получить это

enter image description here

результат.

...