2016-04-08 17 views
0

matlabの散布図をズームする方法はありますか? Iは、ズームインと各データポイントに関連付けられている{1,2,3,4,5,6,7,8,9,10}のテキストサイズをズームアウトするMatlabの散布図のズームテキスト

x = 1:10; y = 1:10; scatter(x,y); 
a = [1:10]'; b = num2str(a); c = cellstr(b); 
dx = 0.1; dy = 0.1; 
text(x+dx, y+dy, c); 

:Iコードを以下ていると仮定それぞれ私たちのアウトボタンのズームをクリックします。私はmatlab r2015bを使用しています。

編集私はボタンcのズームをクリックし例えば1 も図の残りの部分でズームされますと、私はズームアウト]をクリックすると、ボタンcはまた、数字の残りの部分とズームアウトされますenter image description here

+0

私は質問を編集します。図を追加します。あなたは確認してください。 – jubair

答えて

0

MATLABでグラフを開いているときは、画面の上部にメニューバーが開きます。あなたは、画面の下部にあるGUIを使用してサイズ/色/フォントを編集し、フォーマットしたいテキストをクリックすることができ、ここから[表示] - > [プロパティエディタ

を選択。

+0

テキストに1 2 3 4の文字が表示されます。私はxまたはy軸のラベルについて話していません。私の質問は、図を拡大または縮小するときに、プロット内のテキスト(軸ラベルではない)をどのように拡大することができるかです。 – jubair

+0

@jubair答えは軸ラベルに限定されず、テキストオブジェクト同じように。 – mikkola

+0

このようにするには、手動でズームインしてズームアウトする必要があります。問題は、これを手動で処理する方法ではありません。とにかく答えは答えられない。以下に掲載したソリューションを参照してください。 – jubair

0

私は解決策を得ました。 zoom ActionPostCallbackのコールバック関数を使用し、textオブジェクトの追加パラメータを渡す必要があります。次に、ズームレベルをコールバックから調整する必要があります。

f = figure 
x = 1:10; y = 1:10; scatter(x,y); 
a = [1:10]'; b = num2str(a); c = cellstr(b); 
dx = 0.1; dy = 0.1; 
s = text(5, 5, 'c', 'fontsize',1); 
h = zoom(f); 

set(h, 'ActionPostCallback', {@mypostcallback,s}); 

function [ ] = mypostcallback(obj,event_obj,s) 
xlim = event_obj.Axes.XLim; 
fontsize = 10/(xlim(2)-xlim(1)); 
set(s,'fontsize',fontsize); 

end