Gnuplot绘制来自不同文件的数据

时间:2014-04-24 11:54:46

标签: csv graph gnuplot multiple-files

我正在寻找一种方法将不同文件中的数据绘制成一个图表。

我正在测试问题的不同方法。我有一些参数,我试图总结结果与这些参数的关系。我对我比较的不同解决方案进行了一些测试,并且我用不同的参数重复了几次。

所以我有几个.csv文件看起来像这样。

       test1    test2    test3    test4   ...
sol1     1        1        1        1 
sol2     1        1        1        1 
sol3     1        1        1        1 
sol4     1        1        1        1 
...

(这些当然充满了真实的数据而不仅仅是1)

我想绘制一个图形,其中Y轴是(例如)test1 / sol1的结果,x轴绘制不同的参数值(不同的.csv文件)。

我希望我已经明确了我想要创造的东西。

我希望有一种方法可以直接在gnuplot中这样做。文件结构是这样的,以便创建一些其他图形,所以我真的不想改变它。

我读到了连接两个文件的可能性,但我并没有真正看到它在这里有多大用处。

编辑:(感谢Christoph)我想在单元格test1 / sol1中对我的参数绘制值。参数正在按文件更改。所以我需要为每个文件读取1个数据点。

最后,我想在一个图表中为不同的解决方案绘制此信息。因此对于单元test1 / sol1,test1 / sol2,test1 / sol3,...

在下面的例子中,x轴将是变化参数,Y轴将是来自列< test1'的相应单元格中的值。不同的行对应不同的解决方案。

graph example http://wiki.visvis.googlecode.com/hg/images/examples/example_plotting.png

(来自谷歌的随机图片)

我希望现在我想要实现的目标更加清晰。

1 个答案:

答案 0 :(得分:1)

可能不是最好的解决方案,因为我对Gnuplot还不是很有经验,但我设法做到了这样:

sol1 = "< (cat param0.csv param1.csv param2.csv | grep sol1)"
plot sol1 using 2 with lines title "sol1"

所以cat这会将具有不同参数的文件放在一起,然后我只保留sol1行。然后我只绘制第一列(test1的值)

我只是针对不同的解决方案重复这一点,使用复制粘贴(因为解决方案的数量是固定的,这似乎是最简单的方法)。