gnuplot, отображающий несколько линейных графиков

У меня есть следующий файл данных, названный ls.dat:

# Gnuplot script file for "ls"
# Version       Removed Added   Modified
8.1     0       0       0
8.4     0       0       4
8.5     2       5       9
8.6     2       7       51
8.7     2       7       51
8.8     2       7       51
8.9     2       7       51
8.10    2       7       51
8.11    2       8       112
8.12    2       8       112
8.13    2       17      175
8.17    6       33      213

Я пытаюсь построить с этим:

plot "ls.dat" using 1:2 title 'Removed' with lines,\
     "ls.dat" using 1:3 title 'Added' with lines,\
     "ls.dat" using 1:4 title 'Modified' with lines

Это приводит к следующему графику:

enter image description here

То, что я ожидаю, - это три линейных графика, которые должны все подняться, но с разной скоростью. Может ли кто-нибудь увидеть, что здесь происходит? Я уверен, что это должно быть что-то очень глупое.

Ответ 1

Я думаю, что ваша проблема - ваши номера версий. Попробуйте сделать 8.1 → 8.01 и т.д. Это должно поставить точки в правильном порядке.

В качестве альтернативы вы можете using X, где X - нужный номер столбца, вместо using 1:X Это построит эти значения по оси y и целым числам по оси x. Пытаться:

plot "ls.dat" using 2 title 'Removed' with lines, \
     "ls.dat" using 3 title 'Added' with lines, \
     "ls.dat" using 4 title 'Modified' with lines

Ответ 2

ангиры полностью верны. Одно небольшое дополнение, попробуйте это (например)

plot 'ls.dat' using 4:xtic(1)

Это сохранит ваш файл данных в правильном порядке, но также сохранит ваши тиковые метки версии по оси x.

Ответ 3

В дополнение к ответам выше будет также работать приведенная ниже команда. Я публикую его, потому что это имеет для меня больше смысла. В каждом случае это "использование x-value-column: y-value-column"

plot 'ls.dat' using 1:2, 'ls.dat' using 1:3, 'ls.dat' using 1:4 

Ответ 4

Независимо от вашего разделителя в вашем ls.dat, вы можете указать его в gnuplot:

set datafile separator "\t"