3

好吧,这是我上一个问题的延续。正如我所提到的,数据文件是由 Fortran 代码生成的。所有数据文件都包含两列数据。在 Fortran 代码中,我使用FORMAT(2(1X,D22.16))。所以,输出文件看起来像

-.4515533388641104D-01 -.6842652196656712D+01
-.1381692033642749D+00 0.6762844180244199D+01
-.5741668880663318D-01 -.7891086299010933D+01
-.1051164522902431D+00 0.7758389636011907D+01
-.7574000988697732D-01 -.8180315630079706D+01
-.7939204753736680D-01 0.8167097825331970D+01
-.1003250672387262D+00 -.7865995561517515D+01
-.6006135667296913D-01 0.7987393828927278D+01
 ..................... ......................

这只是一个数据文件的一小部分样本。为了绘制这个数据文件,我使用

plot "data001.out" u 1:2 w d lc rgb 'black'

但是,gnuplot无法正确读取数据并生成此图

在此处输入图像描述

使用 Mathematica 程序的正确绘图是这样的

在此处输入图像描述

我注意到,如果我将其更改FORMAT为 (2(1X,F22.16)) (十进制形式),一切正常。为什么gnuplot不能读取指数形式的数据?有没有办法告诉程序如何读取这种类型的数据?

4

1 回答 1

6

从 gnuplot 4.6 手册:

“数据可以以指数格式写入,指数前面带有字母 e 或 E。如果命令set datafile fortran有效,也可以使用 fortran 指数说明符 d、D、q 和 Q。”

所以你应该放在set datafile fortran前面plot

希望能帮助到你!

于 2013-02-02T17:16:09.137 回答