2016-05-26 54 views
1

次の例のグラフは、ループからの値の格納場所(行列インデックスに対してプロットされたベクトルデータ)に作成されます。私はx軸の値を変更したいと思います。この場合、プロットを変更せずに100で除算したいと思います。これを行う簡単な方法はありますか?Matlab - プロット;グラフを変更せずにX軸の値を変更する

さらに私は、私はちょうど値を除算または乗算するだけでなく、実際のプロットを変更せずに値を加算または減算したいと思っている同様のグラフを持っています。私は2番目のベクトルを作成し、しかし、私は別のグラフがたくさんあるので、私はこれを手助けするGUIツールがあるかどうか疑問に思っていましたか?ベクトルがプロットされているインデックスを変更する簡単なコード行です。すべてのアドバイスに感謝

enter image description here

+0

「プロットを変更せずに」 - 正確に何を変更する必要がありますか?プロットの目盛りラベルのみ?または、元のデータの下位値を変更せずに*プロットされたデータを変更したいですか? – Matt

+0

x軸の目盛りラベルのみ – KiW

+0

[http://fr.mathworks.com/matlabcentral/newsreader/view_thread/292303](http://fr.mathworks.com/matlabcentral/newsreader/view_thread/292303) – shamalaia

答えて

1

ティックラベルを手動で変更する代わりに、プロットされたデータのx値を変更することをお勧めします。これには、ズームインしてダニを適切に調整できるという利点があります。プロットへのハンドルを使用してXDataプロパティを読み取り、必要な修正を加えて書き戻すことで簡単に達成できます。 xの値は変更されず、プロット自体のデータのみが変更されることに注意してください。

% example data 
y = linspace(-0.6,4.05,100)*1e8; 
x = linspace(700,1100,100); 

% plot figure 
figure;      % create a new figure 
ph = plot(x,y);    % plot and store handle 

% change x-values of plot 
xp = get(ph,'XData');  % extract from plot using handle 
xp = xp/100;    % modify x-data 
set(ph,'XData',xp);   % write back to plot using handle 

結果のプロット:

result1


他のオプションは、手動でラベルを変更することです。これは、最初に修正されたティックが残っていて、ズームインしたときに調整されないという欠点があります。プロットのコールバック関数を記述しない限り、追加のダニは得られません。それでも、ダニのみを変更する方法は次のとおりです。

xtick = get(gca,'XTick'); 
set(gca,'XTick',xtick,'XTickLabel',xtick/100); 
関連する問題