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"