【发布时间】:2016-02-03 22:12:53
【问题描述】:
虽然我确定这已经在某处得到了回答,但我找不到在哪里,所以如果这是重复的,我很抱歉。我们开始吧。
我有一个文件(真的,我有很多文件),其中 X、Y 和 Z 数据点由空格分隔为三列。我正在尝试使用 GNUplot 对这些进行 3d 绘制,遗憾的是,它似乎对科学记数法不太满意。现在,我可以 sed 使用 (A*10**B) 表示法而不是 (AE+B) 表示法,但 GNUplot 仍然无法识别它。
我知道我可以使用 printf "%.5f" 从科学记数法转换(我认为五位数就可以了),但我找不到如何格式化我的输入,以便我可以将其应用于多个列,或者,更好的是,如何控制每列的格式。我可以转换单个值:
echo ""|awk '{printf "%.5f", $2}' k11edit.dat
但我无法让它处理多个列,甚至无法在值之间保持空格(制表符也可以;我不偏爱单个空格)。
这是我的文件的几行:
0.995 8.1584E-004 -0.17051415E+01
0.995 8.8934E-004 -0.17053282E+01
0.995 9.6284E-004 -0.17055150E+01
0.995 1.0363E-003 -0.17057018E+01
0.995 1.1098E-003 -0.17058886E+01
0.995 1.1833E-003 -0.17060754E+01
0.995 1.2568E-003 -0.17062623E+01
0.995 1.3303E-003 -0.17064493E+01
0.995 1.4038E-003 -0.17066362E+01
0.995 1.4773E-003 -0.17068232E+01
0.995 1.5508E-003 -0.17070103E+01
0.995 1.6243E-003 -0.17071973E+01
0.995 1.6978E-003 -0.17073846E+01
是的,我知道第一列在这几行中并没有改变,但它会进一步向下(文件大约 30,000 行长,所以我认为这里几行就足够了)。
你能帮帮我吗?
【问题讨论】:
-
编辑您的问题以显示给定示例输入的预期输出,因为不清楚您要做什么。
-
我的 gnuplot(4.6 版)对此表示法没有任何问题:
splot 'k11edit.dat' u 1:2:3 w lp显示您的数据点。