Как отобразить данные временного ряда с временными данными - количество пройденных секунд - PullRequest
0 голосов
/ 08 июля 2019

У меня есть следующие данные, и я хочу построить их.

#time,load
10,35965.67
15,35233.82
20,35239.05
25,37188.61
30,36622.32
35,36538.27
....
3000,36305.84

В каждой строке первый столбец - количество прошедших секунд. Второй столбец - это общее количество транзакций каждые 5 секунд.

Я хочу построить так, чтобы:

  • Ось X: время. например, 15.10.20/25 ...
  • Ось Y: транзакции.

Вот мой конфиг:

set datafile separator ","
set terminal png size 900,400
set title "Transaction/second graph"
set ylabel "Transactions"
set xlabel "Seconds"
set xdata time
set format x "%s"
set key left top
set grid
plot "output.txt" using 0:1 with lines lw 2 lt 3 title 'tps'

Итак, изображение, сгенерированное Gnuplot:

enter image description here

Это изображение перевернуто по оси. Я пробовал разные решения, такие как plot using 1:0, но получил исключение. Более того, похоже, что данные неверны. Я не знаю, какое значение для 0/60/120 ...

Ответы [ 2 ]

2 голосов
/ 08 июля 2019

Если у вас есть данные в секундах и вы просто хотите отобразить секунды, я не вижу причины, по которой можно изменить данные на timedata с помощью set xdata time.Если вы не хотите отображать его в виде часов: минут: секунд или дней.

Так что просто используйте:

plot "output.txt" u 1:2 w l lw 2 lt 3 title 'tps'

Не повредит, если вы начнете свой код с reset session.С этим диапазоны и числа и другие постоянные настройки, которые могут вызвать неожиданные результаты, сбрасываются.Если я не использую set output, выходной файл не будет закрыт и будет иметь размер 0 КБ на диске.

Код:

### simple plot
reset session
set terminal png size 900,400
set output "myOutput.png"

set datafile separator ","
set title "Transaction/second graph"
set ylabel "Transactions"
set xlabel "Seconds"
set key left top
set grid
plot "output.txt" using 1:2 with lines lw 2 lt 3 title 'tps'
set output    # close output file and swith back to default
### end of code

Результат:

enter image description here

1 голос
/ 08 июля 2019

Вы также должны указать gnuplot, как форматируется время ввода.set format x "%s" просто означает, как числа будут отформатированы на графике.

Чтобы сообщить gnuplot время в секундах, используйте

set timefmt "%s"
...