2012-10-06 74 views
1

一个三维曲线I具有以下列格式的数据文件:绘制从数据文件

1,00000 2,00000 3,00000 
1,37864 1,83839 2,90917 
1,71932 1,75834 2,77034 
2,03327 1,75821 2,58788 
2,32958 1,83535 2,36475 
2,61380 1,98720 2,10290 
2,88682 2,21109 1,80385 
3,14388 2,50283 1,46933 
3,37385 2,85424 1,10207 
3,55891 3,25003 0,70675 
3,67565 3,66464 0,29077 
3,69810 4,06096 -0,13516 
3,60327 4,39280 -0,55697 
3,37826 4,61289 -0,95808 
3,02656 4,68499 -1,32117 
2,57023 4,59570 -1,63053 
2,04607 4,35956 -1,87439 
1,49686 4,01436 -2,04634 
0,96171 3,60912 -2,14556 
0,46928 3,19100 -2,17583 
... 

也就是说,有在每行上的3维点。

我想在3D空间中将这些点绘制成曲线,因此这些点将从第一个点开始直线连接。

但是,下面的gnuplot的程序不能正常工作:

set xrange [-5:5] 
set yrange [-5:5] 
set ticslevel 0 
splot "data.dat" u 1:2:3 with lines 

它给了非常奇怪的结果: plot

看起来像gnuplot的由于某种原因,我接近与整点的所有数据。

我认为这可能是我的数据真的给出了这张图片,但是,当我要求gnuplot只绘制点而不是线时,它仍然只绘制了积分点,上图中线条的关节。

这是为什么?我无法迫使谷歌给我一个答案。看起来像没有人对绘制3D空间中的曲线感兴趣:)

+0

一个有用的问题,修改文件,但标题是误导性的。也许关于标题中积分的一些事情会更好。 –

回答

2

您应该用data.dat文件中的点代替彗差。小数分隔符是大多数操作系统中区域设置的主题。例如,俄罗斯地区昏迷,美国和英国昏迷。

在Linux上的区域设置可以locale实用

locale -k LC_NUMERIC 
decimal_point="." 
thousands_sep="," 
grouping=3;3 
numeric-decimal-point-wc=46 
numeric-thousands-sep-wc=44 
numeric-codeset="UTF-8" 

一种可能性被检查在类Unix系统的转换是使用sed在地方

sed -i "s/,/./g" data.dat 
+0

非常感谢,完美的工作!我怎么能忘记它? –