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

67 vues (au cours des 30 derniers jours)
Iron1759
Iron1759 le 3 Jan 2021
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?

Réponse acceptée

Iron1759
Iron1759 le 14 Jan 2021
Thanks, it works..

Plus de réponses (1)

Mischa Kim
Mischa Kim le 3 Jan 2021
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 commentaires
Iron1759
Iron1759 le 9 Jan 2021
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 le 10 Jan 2021
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.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by