Scilabで連続ウェーブレット変換-6 (縦軸を修正する)

こんにちは。
今回は、表示を修正します。

前回の表示は、縦軸に表示されている数値は、実際とは関係ない数値になっていました。
スケールを2の冪乗で定義したため、線形で表示されている軸と合わなくなったためです。
そこで、Scilabの機能を使い、縦軸を修正してみます。

//ウェーブレット関数
wname = 'cmor';

//サンプリング周波数
fs=100;

//時間軸生成
t = [0:1/fs:10];

//データ生成
x=sin((2*%pi.*(t)).*t);
x=x+x($:-1:1);

// スケーリング列
scales = 2^[1:1/8:6];
coef=cwt(x,scales,wname);

//ウェーブレット係数を画像に変換
cmap_n=512;
cmap=jetcolormap(cmap_n);
n2=int(abs(coef)/max(abs(coef))*(cmap_n-1)+1);

//表示
scf(0);clf;f=gcf();f.color_map=cmap;
ca=gca();
ca.axes_reverse(2)="on";
ca.tight_limits = "on";
Matplot(n2($:-1:1,:));

xlabel("Samples");
ylabel("Scale");

//Y軸を変更する
scales_ticks=find(fix(scales)==scales)'; //切りが良い数値のみ抜出し

a=gca(); //軸を取得
yticks=a.y_ticks; //Y軸を取得
yticks.locations=scales_ticks; //位置を指定
yticks.labels=string(scales(scales_ticks)'); //表示する内容を指定
a.y_ticks=yticks;



j.jpg


gca() を実行することで、現在表示しているグラフのプロパティを取得できます。
その中身を変更することで、グラフの見栄えを変更できます。
Y軸の数値は、yticks.locationsとyticks.labelsで変更できます。
これらは2つ同時に変更しないといけないので、一度別の変数に格納してから代入します。


今回はこれくらいで。
しばらく表示をいじっていこうと思います。実データ解析にたどりつくのは、まだ少しかかりそうです。
スポンサーサイト

コメントの投稿

非公開コメント

全記事表示リンク

全ての記事を表示する

最新記事
最新コメント
最新トラックバック
カテゴリ
検索フォーム
RSSリンクの表示
リンク