1

gnuplot を使用して、線とエラー バーの両方でプロットを生成しようとしていますが、問題が発生しています。このコードを実行すると (事前に i を定義せず、事前に m = 9 を定義):

plot for [i=2:5] \
'../Data/Clustering/c_vs_n_with_error_'.i.'ball_m'.m.'.txt' u 1:2 w linespoints t ''.i.'-Ball', \
'../Data/Clustering/c_vs_n_with_error_'.i.'ball_m'.m.'.txt' u 1:2:3 w yerrorbars t ''

次のエラーが表示されます。

warning: Skipping unreadable file "../Data/Clustering/c_vs_n_with_error_6ball_m9.txt"

実際、その名前のファイルはありません。私の問題は、結果のプロットにエラーバーがないことです (線のみのスタイルでプロットされています)。同じファイルの 2 回目の使用が単純に無視されるかのようです。ただし、反復範囲を [i=2:4] に変更すると、エラーは発生しません。i=5 のデータ範囲は、線ではなくエラー バーでプロットされます。

この方法でプロットしているのは、調査した他の情報から、複数のスタイル (ラインポイントとエラーバー) を同時にプロットすることは不可能であり、これは良い解決策であることがわかったからです (ただし、単一のデータ シリーズの例のみが示され、 for ループ)。

私が避けたい 2 つのことは、a) すべてのファイルを (反復を使用せずに) 書き出すことと、b) シェル スクリプトに頼ることです。

ご協力ありがとうございました!

4

1 に答える 1

2

反復の範囲は、次のコンマまたはコマンドの終わりのいずれか早い方で終了します。たとえば、次の 2 つの例 (gnuplot マニュアルから) を比較してください。

plot for [i=1:3] j=i, sin(j*x)

plot for [i=1:3] j=i sin(j*x)

したがって、プロット コマンドを次のように変更できます。

file(n) = sprintf('../Data/Clustering/c_vs_n_with_error_%dball_m'.m.'.txt', n)
plot for [i=2:5] file(i) u 1:2 w linespoints t ''.i.'-Ball', \
     for [i=2:5] file(i) u 1:2:3 w yerrorbars t ''
于 2013-07-22T16:47:33.070 に答える