Charts 每个文本文件的GnuPlot图表绘图

Charts 每个文本文件的GnuPlot图表绘图,charts,text-files,gnuplot,Charts,Text Files,Gnuplot,我比较了四种排序算法,每种算法的反演和比较都存储在一个文件中。我现在需要的是为每个文件绘制一个带有标记的散点(x,y),其中 x -> number of inversions y -> number of comparisions 并将其缩放到数字,例如,我们有IS10.txt,它代表InsertionSort,它有300行x和y 样本数据 line 1: 20 33 line 2: 18 27 ... line 300: 21 24 关键是能够生成用于比较的图表。绘制单个文件

我比较了四种排序算法,每种算法的反演和比较都存储在一个文件中。我现在需要的是为每个文件绘制一个带有标记的散点
(x,y)
,其中

x -> number of inversions
y -> number of comparisions
并将其缩放到数字,例如,我们有
IS10.txt
,它代表
InsertionSort
,它有300行x和y

样本数据

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

关键是能够生成用于比较的图表。

绘制单个文件很简单,只需使用

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=“IS10.txt HS10.txt…”

使用相同的
线型打印一个文件的所有数据点。第一个文件使用
线型1
,第二个文件使用
线型2
等。Type
test
查看这些默认
线型的点和颜色的外观


您可以使用类似于
set linetype 1 linecolor rgb'blue'pointtype 7的设置来更改这些设置,以获得
20
可区分的点样式。

嘿。我假设GNUPlot是一个独立的软件,不能直接与我的Java程序连接。我的假设正确吗?另外,您能告诉我这个tr“\n”“到底代表什么吗?@user2095534是的,它是一个独立的程序,但您可以像其他任何外部程序一样从Java调用它,也可以将数据传输到它。调用
tr“\n”“”
将换行符替换为空格,请参见
man tr
。但是我已经看到,这是不必要的,所以使用
list=system('ls-1*.txt')
也可以。好的,我们已经清楚了。[列表中的文件]是一个变量,还是应该放在其中的某个地方?您知道如何从Java调用gnuplot吗?我从未调用过任何外部程序。@user2095534不,您不必对
[列表中的文件]
执行任何操作:这将迭代字符串变量
列表
中包含的单词(即空格分隔的字符串),并将其存储在变量
文件
中。例如:
list=“A.txt B.txt C.txt”;对[列表中的文件]{print file}
执行以下操作。不,我不知道如何从Java调用gnuplot。非常感谢。应该这样做。感激