2013-10-11 3 views
0

Я создал программу, которая имеет четыре типа алгоритмов сортировки, а их инверсии и сравнения для каждого алгоритма хранятся в файле. Что мне теперь нужно сделать разброс только с маркерами (х, у) для каждого файла (есть 20) гдеГрафический чертеж GnuPlot из текстового файла

x = number of inversions, 
y = number of comparisions, 

и масштабировать его с числами, так, например, мы имеем IS10.txt, который стоит для сортировки вставок и имеют 300 строк с хз и увами, так как:

line 1: 20 33 
line 2: 18 27 
... 
line 300: 21 24 

Я никогда не использовал GNUPLOT, мне просто нужно сделать это сравнить алгоритмы, такие как вставки, быстро, сливаются и куча сортировки по диаграмма

ответ

0

Построение одного файла является простым, просто используйте

plot 'IS10.txt' using 1:2 title 'InsertionSort' 

Если вы хотите построить все файлы, вы можете сделать это следующим образом:

list = system('ls -1 *.txt | tr "\n" " "') 
set key out 
plot for [file in list] file using 1:2 title file 

Здесь, я предположил, что все .txt файлы в текущем каталоге должны быть нанесены. Разумеется, вы также можете генерировать list вручную. Он должен содержать все имена файлов, помеченные пробелом (например, list = "IS10.txt HS10.txt ...").

Это все точки данных одного файла с одинаковыми linetype. Первый файл использует linetype 1, второй - linetype 2 и т. Д. Тип test, чтобы посмотреть, как выглядят точки и цвета этих по умолчанию linetype.

Вы можете использовать что-то вроде set linetype 1 linecolor rgb 'blue' pointtype 7, чтобы изменить эти настройки, чтобы получить 20 хорошо различимые стили точек.

+0

Эй. Я предполагаю, что GNUPlot является автономным программным обеспечением и не может напрямую подключаться к моей программе Java. Правильно ли я принимаю? Кроме того, не могли бы вы рассказать мне, что именно это означает "\ n" "" точно? –

+0

@ user2095534 Да, это автономная программа, но вы можете вызывать ее из Java, как любая другая внешняя программа, а также передавать данные на нее. Вызов 'tr '\ n" "" 'заменяет новую строку пробелом, см.' Man tr'. Но я видел, что это необязательно, поэтому также будет иметь 'list = system ('ls -1 * .txt')'. – Christoph

+0

Хорошо, мы это ясно. Является ли [файл в списке] каким-то переменным, или я должен куда-то туда попасть? Вы случайно не знаете, как вызвать gnuplot из Java? Я никогда не вызывал никакой внешней программы. –

Смежные вопросы