4

gnuplot を使用しており、2 つ以上のパラメーターを持つデータがあります。3D グラフを使用したくありません。そのため、同じプロットでデータを複数の行に分割します。

私のデータは次のようになります。

    #k   #N   #time   
1   1   0.000556134 
2   1   0.00099 
4   1   0.00201011  
8   1   0.00376214  
16  1   0.00675843  
1   2   0.000717646 
2   2   0.000794106 
4   2   0.0016033   
8   2   0.0033602   
16  2   0.00795338  
1   4   0.000476448
...     ...     ... 

最初は使用するストリーム数、2 番目はバッファ サイズ、最後はこの操作での使用時間です。

バッファ サイズが X、時間 Y で、「使用されるストリームの量」ごとに 1 つの行がある 1 つのグラフが必要です。今までの私のコード:

     reset
        set   autoscale # scale axes automatically
        unset log       # remove any log-scaling
        unset label     # remove any previous labels
        set xtic auto   # set xtics automatically
        set ytic auto   # set ytics automatically
        #set logscale x 2
        #set logscale y 2
        set rmargin 10
        set bmargin 5
        set tmargin 5 
        set key left top
        set title
        set term png giant size 1500, 800 crop

        set title "Adapter Stream Input" font "verdana, 20"
        set xlabel "Buffer Size" font "verdana, 20"
        set ylabel "Time in Seconds" font "verdana, 20"

        set key right bottom spacing 4 width 5 height 5 font "verdana, 15"

        set output "AdapterStreamInputTests.png"

        plot    "AdapterStreamInputTests.txt" using ($1 == 1 ? $2 : 1/0):($1 == 1 ? $3 : 1/0) title '1 Stream' with linespoints ls 1 linecolor rgb "blue", \
        "AdapterStreamInputTests.txt" using ($1 == 2 ? $2 : 1/0):($1 == 2 ? $3 : 1/0) title '2 Stream' with linespoints ls 1 linecolor rgb "red", \
        "AdapterStreamInputTests.txt" using ($1 == 4 ? $2 : 1/0):($1 == 4 ? $3 : 1/0) title '4 Stream' with linespoints ls 1 linecolor rgb "yellow", \
        "AdapterStreamInputTests.txt" using ($1 == 8 ? $2 : 1/0):($1 == 8 ? $3 : 1/0) title '8 Stream' with linespoints ls 1 linecolor rgb "brown", \
        "AdapterStreamInputTests.txt" using ($1 == 16 ? $2 : 1/0):($1 == 16 ? $3 : 1/0) title '16 Stream' with linespoints ls 1 linecolor rgb "pink"

set output

私の主な問題は、すべてが正しくプロットされますが、プロット間に線が引けないことです。コマンド「使用」の章の下にあるマニュアルから、次のことを読みました。

plot 'le'、1:2 を使用した plot 'le'、および ($1):($2) を使用した plot 'le' は微妙に異なる場合があることに注意してください。 2 つ目は、1 つ目は x 値が欠落している場合に x 値を発明し、2 つ目は 1 つの列を持つ行を静かに無視し、3 つ目は 1 つの点を持つ線の未定義の値を格納します (線のあるプロットでは、線が点を結合しないように)悪い点を越えて); 2) 行の最初の列にテキストが含まれている場合、最初の列はエラーでプロットを中止しますが、2 番目と 3 番目の列はガベージを静かにスキップする必要があります。

私は3番目のカテゴリにいると思います.すべてのプロットの間に4つの無効なプロットがあるため、線はありませんが、それを修正する方法が見つかりません.

無効なプロットを無視する方法が見つかりません。そして、未使用のプロットを削除できる、私が見つけた前処理の方法はないようです。しかし、私はおそらく何かが欠けています。

4

1 に答える 1

5

さて、あなたには2つのオプションがあります。

1.)ここに示されているように、every コマンドを使用します。代替リンク (ウェイバック マシン)

2.) 上記のように ?: 表記を使用して文字を先頭に追加する場合は、欠落しているパラメーターを使用します。素晴らしい非公式の FAQ代替リンク (wayback machine)で詳細を再度確認してください。

于 2012-03-05T14:50:38.293 に答える