じつはこれをプログラムからやるのは結構面倒だったりします.
なので専用の関数を作ってみました.
こんなグラフに
>> addxtick(2/pi)とすると
こんな風に目盛りがつきます.
ラベルもいじりたいときは
>> addxtick(pi/2,'pi/2')と入れれば
となります.便利ですよ.
短いプログラムなのでコピーしてaddxtick.mという名前で保存して使ってください.
function [] = addxtick( tk, tklbl ) %ADDXTICK --- Add new tick to x-axis % Ex. addxtick(3.14) % Ex2. addxtick(3.14, 'Pi') if nargin==1 set(gca,'XTick',unique(sort([get(gca,'XTick'), tk ] ))); else temp = cellstr(get(gca,'XTickLabel')); temp = {temp{:},tklbl}; [temp2,idx] = sort([get(gca,'XTick'),tk]); [temp2,idx2]=unique(temp2); idx=idx(idx2); set(gca,'XTick',temp2); set(gca,'XTickLabel',temp(idx)); end endあと,ほとんど同じですがaddytick.mも置いておきます.
function [] = addytick( tk, tklbl ) %ADDYTICK --- Add new tick to y-axis % Ex. addytick(3.14) % Ex2. addytick(3.14, 'Pi') if nargin==1 set(gca,'YTick',unique(sort([get(gca,'YTick'), tk ] ))); else temp = cellstr(get(gca,'YTickLabel')); temp = {temp{:},tklbl}; [temp2,idx] = sort([get(gca,'YTick'),tk]); [temp2,idx2]=unique(temp2); idx=idx(idx2); set(gca,'YTick',temp2); set(gca,'YTickLabel',temp(idx)); end end
1 件のコメント:
uniqueを使ってるのと、
インデックスの並び替えがポイントですかねー
複数でも対応できるので便利ですな~
コメントを投稿