2011-12-08 9 views
1

gnuplotを使用して2列のデータファイルをプロットする必要があります。散布図は私が必要と考えるものです。しかし、私の、データファイルをプロットするときにgnuplotが異常値を取り除く

1 612856 
3 3840538 
5 5240597 
. 
. 
. 
139845 1 
141101 1 
141584 1 

私は私の散布図は、対数の傾向を示すことを期待しています:次のように私のデータの先頭と末尾から

plot "first_click" using 2:1 

3行になりますのgnuplotの私の理解では、限りが行きますデータ(ほとんどのデータとして)には外れ値のトンがあります。だから私は2つのうちの1つを行う必要があります:

  1. ほとんどのデータが自動的に「ズーム」します。
  2. アウトライヤを自動的にプルーニングします。
  3. おそらく--e.gスコープ内のエントリの両方の列を取ることができる述語を手動でデータを整理するために列ごとに述語を提供し、そして、!column1 > x && ! column2 == 1

精度が問題ではありません。

この段階で私は1と2を好むが、私はプログラマーで統計家ではないので、オプション3も可能であるかどうか確認したい。

答えて

1

gnuplotは、プロットされたデータに合わせて自動的にズームする必要があります(そうでない場合は、reset yrange, xrangeを再度自動ズームすることができます)。アウトライアーが作図前に剪定されている場合、最初の要件はすでに満たされています。

番号2および3は、次のように描画コマンドを修正することによって達成することができる:

plot "first_click" using ($2 != 1 ? $2 : 1/0):($1 < x ? $1 : 1/0) 

は、2番目の列は1に等しくなく、最初の列は以下xされた値のみをプロットすることになります。ここで、xは、アウトライヤーのプルーニングを開始する値です。 1/0は、gnuplotのポイントが無効であることを示す方法であり、プロットされません。

3

また、これは、ほとんどの異常値を示していないの副作用があり

plot "first_click" using 2:1 smooth bezier with lines 

を試みることができます。

+0

ありがとう= D私は偶然、より多くのデータをプロットしています:D –

+0

本当にいい答えです!! – alekhine

関連する問題