2

次の形式のデータファイルがあります。

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空間の曲線としてプロットしたいので、これらの点は最初から直線で1つずつ接続されます。

ただし、次のgnuplotプログラムは機能しません。

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

それは非常に奇妙な結果をもたらします: プロット

そのgnuplotは、何らかの理由ですべてのデータを整数点で近似しているように見えます。

私のデータは本当にこの絵を与えているのかもしれないと思いましたが、gnuplotに線ではなく点だけをプロットするように頼んだとき、それでも上のプロットの線の継ぎ目である整数点だけをプロットしました。

なんでそうなの?私はグーグルに私に答えを与えるように強制することができませんでした。3D空間で曲線をプロットすることに興味がある人はいないようです:)

4

1 に答える 1

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ライクなシステムでの変換の可能性の1つは、sedファイルをその場で変更するために使用することです。

sed -i "s/,/./g" data.dat
于 2012-10-06T07:17:25.947 に答える