How do I change axes scale in a surface plot by a predefined factor?

69 ビュー (過去 30 日間)
Iron1759
Iron1759 2021 年 1 月 3 日
回答済み: Iron1759 2021 年 1 月 14 日
Hello,
I have a surface plot -
on x axis - [0,1,2.... 15];
on y axis - [0,1,2,...50];
I'd like to change the axes scale by multiply these two vector by a factor (different one on each axis), for exmaple by 12.5578 and thus changing only the axes lables.
I'm familair with XtickLabel and YTickLabel but I think it's less applicatble, mainly becaue this factor is not round.
Real life example - for instance when you want to change reperesntation from pixles to real units without changing the data.
Any thoughts?

採用された回答

Iron1759
Iron1759 2021 年 1 月 14 日
Thanks, it works..

その他の回答 (1 件)

Mischa Kim
Mischa Kim 2021 年 1 月 3 日
Iron, if it just about changing the labels simply use xticklabels(). See the example below:
x = linspace(-10,10,200);
y = cos(x);
plot(x,y)
xticklocs = [-3*pi -2*pi -pi 0 pi 2*pi 3*pi];
xticks(xticklocs);
myfac = 10; % this would be your 12.5578
xticklabels(cellstr(num2str(xticklocs'*myfac)));
  4 件のコメント
Iron1759
Iron1759 2021 年 1 月 9 日
I don't know if it's only me but I didn't quite get it.
xticklocs/yticklocs are both 1D arrays after 'conversion' from nanometers (that I want to present) to a different unit.
Then, I don't get a display of my surface (after I used meshgrid).
xticklabels(cellstr(num2str(x))); % 0:10:200
yticklabels(cellstr(num2str(y))); % 0:10:200
Multi_x = multiplier_x; % = ~11.93
Multi_y = multiplier_y; % = ~ 3.98
xticklocs = x./Multi_x;
yticklocs = y./Multi_y;
xticks(xticklocs);
yticks(yticklocs);
Mischa Kim
Mischa Kim 2021 年 1 月 10 日
See this example:
x = linspace(-10,10,200);
y = cos(x);
figure(1)
plot(x,y)
xticklocs = [-3*pi -2*pi -pi 0 pi 2*pi 3*pi];
xticks(xticklocs);
figure(2)
plot(x,y)
xticklocs = -400:80:400; % these are the nice numbers
myfac = 400/(3*pi);
xticklabels(cellstr(num2str(xticklocs.')));
xticks(xticklocs/myfac);
If this does not help, share your code so I can provide specific input.

サインインしてコメントする。

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by