2

我正在尝试(使用 Gnuplot)从一个文件中绘制一些基本的 3d 数据,这非常像:

N     M    t1      t2       t3       t4
1000 1000 0.05268 0.04711 0.003947 0.003348
1000 2000 0.05743 0.04214 0.007577 0.006486
1000 3000 0.08465 0.04193 0.011329 0.009654


2000 1000 0.10726 0.08845 0.013593 0.012397
2000 2000 0.21065 0.10817 0.026525 0.024390
2000 3000 0.31528 0.16960 0.039772 0.036405


3000 1000 0.25415 0.14845 0.031082 0.026364
3000 2000 0.47345 0.25227 0.060887 0.051840
3000 3000 0.70612 0.36866 0.091311 0.077432

这个想法是以某种方式绘制它,我可以看到每个 N 和 M 的 t1、t2、t3 和 t4。我知道,仅在一个图中绘制可能会有很多数据。首先,我从 t1 开始以这种方式绘制:

splot 'aux' u 1:2:3 w lp

我得到类似的东西在此处输入图像描述

我想对这些线条进行一些平滑处理并赋予它们不同的颜色。有什么办法可以为它做点什么吗?此外,以任何其他方式改进它的任何想法都会非常好。

4

1 回答 1

3

你是对的,这是很多数据。更改特定数据集的颜色非常简单:

splot "dataset" using 1:2:3 w lines linecolor rgb "green"

请注意,您可以轻松地叠加多个图,如下所示:

splot "dataset" using 1:2:3 w lines lc rgb "green",\
      ""        using 1:2:4 w lines lc rgb "red"

行尾的反斜杠是 gnuplot 的续行字符。请注意,它必须是该行的最后一个字符。我还使用了伪文件"",它只是 gnuplot 读取的最后一个文件的简写。最后,在第二个版本中,我使用lclinecolor. gnuplot 解析器提供了很多速记,尽管我怀疑你在绘制w lp. (另外,请不要为你的地块选择红色和绿色。我认为 gnuplot 的最大缺陷之一是默认的前两种颜色是红色和绿色——20 人中有 1 人是红绿色盲)

平滑是另一回事(不幸的是)。 plot确实支持一个smooth选项

plot "dataset" using 1:2 smooth beizer with lines  #see help smooth for a list of options

不幸的是,这个选项似乎不适用于splot. 此时,我将编写一个小型实用程序脚本,使用您最喜欢的平滑算法 ( plot "<utility.script mydata" u 1:2:3 ...) 以您最喜欢的语言对数据进行平滑处理。还有其他(仅 gnuplot)选项,但它们会很丑陋。顺便说一句,你有什么版本的 gnuplot?如果您认为仍然有必要,则 gnuplot 版本对于决定在 gnuplot 中进行平滑处理的最佳方式非常重要。

于 2012-07-27T12:31:31.333 回答