じつはこれをプログラムからやるのは結構面倒だったりします.
なので専用の関数を作ってみました.

こんなグラフに
>> 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を使ってるのと、
インデックスの並び替えがポイントですかねー
複数でも対応できるので便利ですな~
コメントを投稿