2016-12-26 10 views
1

私は、自動音楽転写プログラムの出力であるデータの行列を持っています。適切なラベルを割り当ててgnuplotを使ってプロットしたいと思います。gnuplot行列のティックラベルの数を減らす/減らす方法

reset 
set title "Intensity detection" 
set palette negative grayscale 
set cbrange [0.01:1] 
set xlabel "Time [s]" 
set ylabel "Musical note" 
set terminal qt font "Verdana,16" 
set logscale cb 
xincr=0.04644 
yincr=1 
plot 'example.all' u (($1+0.5)*xincr):($2*yincr):3 matrix with image 
:Intensity.datは実際のデータである Here's my dropbox with some dataは、example.stnは paste example.stn Intensity.dat > example.allスクリプトのちょうど結果をy軸とexample.allに表示されるいくつかの文字列値の列、 あります

は、 plot produced by script 1を生成する。すべての[OK]を、今だけの目盛りの見出し...

私はplot 'example.all' u (($1+0.5)*xincr):($2*yincr):3 matrix rowheaders with imageに最後の行を変更した後、y軸はあまりにも稠密人口なり(それはトップに私のDropbox、リンクからplot2.jpgです。申し訳ありませんがみんな、I私は2つ以上のリンクを投稿することはできません)。 私が欲しいのは、私が望むラベルだけを表示する方法(または他のものを隠すこと)ではなく、一度に表示することができないためです。私はそうする必要があるときに、他の人に素早く変更させたいと思っています。おそらく、私はすべての12行目のラベルを表示したいが、すべての行をプロットして行列全体を保持している。または12日ごとに2番目のラベルから始まり、12日ごとに6番目から始まります。私はすでに多くの方法を試しましたが、私は立ち往生しています。 ytics()や:yticlabels()のような関数は、少なくとも私のためにはできません。そして、はい、私はこのVerdana 16が必要です、そしてラベルを完全に取り除くことは疑問です。

この方法が他のプロットのx軸に類似した問題を抱えているので、この方法がx軸にも適用される場合は、さらに感謝します。

答えて

0

あなたはこのようyticsプロットからイメージをプロット分離することができます:

condition(n) = (ceil(n)%12-2 == 0) || (ceil(n)%12-6 == 0) 

plot 'Intensity.dat' u (($1+0.5)*xincr):($2*yincr):3 matrix with image ,\ 
    'example.stn' u (NaN):0:ytic(condition($0) ? strcol(1) : "") notitle 

機能ラベルをプロットするかどうかをconditionチェックを。私はceilを使用して、実数からモジュロ演算子(%)で必要な整数に変換しています。 condition関数は、線番号$0で呼び出されます。 NaNは、 'example.stn'をプロットしている間に、ラベルを設定する機会を保ちながらデータポイントをプロットすることを避けています。条件が満たされた場合(6thから2thまたは12thから始まる12thラベル)、実際のラベルを使用します。それ以外の場合は空の文字列が使用されます。

note intensities

+0

まず第一に、私はそれが解決策だ信じて、高速な応答をありがとうございました。 x軸ラベルを探す人は、 です。 'condition(n)=(ceil(n)%12-2 == 0)|| ($ 2 * yincr):画像を含む3つの行列、\ 'の例を表示します(例:ceil(n)%12-6 == 0) とプロット部分 'plot' example.dat ' .stn 'u 0:(NaN):xtic(条件($ 0)?strcol(1): "")notitle' – LDTV

関連する問題