在gnuplot中读取外部数据文件

Vag*_*s_Z 3 plot fortran file gnuplot

嗯,这是我之前的问题的延续.正如我所提到的,数据文件是从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
 ..................... ......................
Run Code Online (Sandbox Code Playgroud)

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

plot "data001.out" u 1:2 w d lc rgb 'black'
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

使用Mathematica程序的正确情节是这样的

在此输入图像描述

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

lev*_*uby 6

从gnuplot 4.6手册:

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

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

希望能帮助到你!