我知道如何在 gnuplot 中制作直方图,但是当数据位于单个文件中时,我看到的所有指令都是有效的。我的问题是我的数据跨越了几个文件。有什么办法可以做到这一点gnuplot
吗?
3 回答
并不真地。Gnuplot 真的只擅长一次处理一个文件。但是,有许多有用的外部工具可以为您将文件组合在一起:
plot "<magic_external_tool file1 file2 file3 file4 ..." ...
当然,您选择的外部工具是您的文件已经格式化的问题。如果备用 ( awk
, sed
, join
, cat
...) 不起作用,我经常依靠python
编写一个快速脚本来完成这项工作,但我相信很多其他人会使用类似perl
or的东西java
。你使用什么工具并不重要,只要你能哄它把一个格式正确的文件写入标准输出,你就很成功了。
正如 mgilson 所说,这在 gnuplot 中是不可能的。
您可能需要考虑的一件事(我是该项目的作者,我在这里有偏见)是 Pyxplot http://www.pyxplot.org.uk,它是由一群感到沮丧的 gnuplot 用户编写的有这样的问题。与 gnuplot 一样,它是免费和开源的,而且它的语法几乎相同。
根据您的需要,它有一个 histogram 命令,它产生一个数学函数,表示从提供的数据计算的直方图(参见http://pyxplot.org.uk/current/doc/html/sec-histogram.html)。您可以执行以下操作:
histogram f1() 'file1.dat'
histogram f2() 'file1.dat'
histogram f3() 'file1.dat'
plot f1(x) + f2(x) + f3(x)
在我看来,你确实可以只使用 Gnuplot 来做到这一点,我就是这么做的。我使用的解决方案可以在这里找到:https ://stackoverflow.com/a/11092650/448700