2011-12-27 10 views
13

データファイルには30列とN行があります。各行は、x = {1、...、30}に対する関数f(x)の30個の値に対応する。データファイルには、パターンを次のようしていますgnuplot:データファイルの各行をYとインクリメンタルXとしてプロットする方法

#<index> f(1) f(2) ... f(30) 
1 7.221 5.302 ... -1.031 
2 4.527 3.193 ... 0.410 
... 
N 6.386 1.321 ... -0.386 

gnuplotはXとYとしての第2の1のように、最初の列を解釈しかし、それは私が欲しいものではありません。例えば、最初の行のために、gnuplotはこの入力ファイルを使用して所望の出力を得る:

# X Y 
1 7.221 
2 5.302 
... 
30 -1.031 

私はこのデータファイルを転置することなく分離し、出力ファイルの各行をプロットします。

おかげ

答えて

7

はクリストフさんのコメント@に基づいてを更新し、最初の列をスキップ:

plot for [i=2:30] 'data.dat' using (i-1):(column(i)) with linespoint 
+0

答えをありがとうが、それは私が探していない。これの出力は 'data.dat'の最初の行のこれらの点(1、y1)、(1、y2)、...(1、y30)です。望ましい答えは(1、y1)、(2、y2)、...、(30、y30)です。 – cartoonist

+2

これは 'using(i-1):(column(i))'と連動します。 – Christoph

+0

正常に動作しません。行単位ではなく列単位でプロットします。以下の答えは正しいです。 –

7

私は解決策を見つけた:

plot "data.dat" matrix every 1::1 with linespoint 
    matix
  • は、入力ファイルがマトリックスとして解釈されるデータファイルのタイプを示します。
  • every 1::1
+0

がそれぞれ異なるラインを着色するが方法ですか? –

+1

@JakubPietkunはい、[あります](http://stackoverflow.com/a/20983399)。それは、 'plot" data.dat "マトリックスは1:3:2を1:1でlinespoints paletteと一緒に使っているようです。 –

関連する問題