在gnuplot中读取外部数据文件

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未能正确读取数据并生成此图:enter image description here。正确的图表应该使用Mathematica程序,如下所示:enter image description here。我注意到,如果我将FORMAT更改为(2(1X,F22.16))(十进制形式),一切都正常。为什么gnuplot无法读取指数形式的数据?有没有办法告诉程序如何读取这种类型的数据?
1个回答

6

来自gnuplot 4.6手册:

“数据可以使用指数形式书写,指数前面加上字母e或E。如果命令set datafile fortran生效,则还可以使用fortran指数说明符d、D、q和Q。”

因此,在plot之前应该输入set datafile fortran

希望这可以帮助你!


有多大的概率呢?这个问题已经6个小时没有得到解答,然后我们俩竟然同时开始回答。真是太奇怪了。给你点赞! - mgilson
我在想?相当低!也给你加1分,我们基本上给出了相同的答案! - lev.tuby
是的 - 我真的很喜欢得到gnuplot的赞,但我想你比我快了大约20秒,所以我会删除我的答案,以确保你得到了它的信用。这似乎是公平的。不过,下次我会赢回来的;-) *(也许)*。 - mgilson
@lev.tuby非常感谢您的回复!顺便问一下,Windows版本的4.6补丁级别1是否可用?我卡在了4.6.0上,其中包含几个错误... - Vaggelis_Z
@mgilson:谢谢!虽然我不确定我应该得到那样的赞扬。如果这种情况再次发生,我会开始思考我们是否在矩阵中:-),但我一定会给你信用,答案基本相同。 Vaggelis_Z:不客气。我只在Linux上工作,所以我不知道Windows版本的情况。请查看www.gnuplot.info。如果那里没有任何东西,那么它就不可用。还要检查他们的演示文稿,它们真的很好。 - lev.tuby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接