I have an x label ( starting from 0 in the axis - 1000, 2000, 3000, 4000, 50000, 6000)
I want to change the axis to the following starting from 0 in the axis - 2000, 4000, 6000, 8000, 10000, 12000
I have used the following implementation but not working
labels = [0 2000 4000 6000 8000 10000 12000];
disp(plot(X));
set(gca, 'XTick', 1:length(labels));
set(gca, 'XTickLabel', labels);
Can someone help me out with this
Thanks in advance

 채택된 답변

Rik
Rik 2019년 5월 28일

0 개 추천

The XTick property requires a vector with numeric data, but the XTickLabel property requires a cell array.
labels = [0 2000 4000 6000 8000 10000 12000];
disp(plot(X));
set(gca, 'XTick', 1:numel(labels));%this puts the labels at x=1,2,3,4,5,6,7
set(gca, 'XTickLabel', cellfun(@num2str,num2cell(labels));

댓글 수: 8

Tino
Tino 2019년 5월 28일
Hi Rik
Thanks for your swift response. I am getting the error
Error using cellfun
Non-scalar in Uniform output, at index 2, output 1.
set 'UniformOutput' to false.
Error in nuss(line 35)
set(gca, 'XTickLabel', cellfun(@num2str,num2cell(labels)));
Thanks in advance
Tino
Tino
Tino 2019년 5월 28일
Hi Rik
I was able to put the Uniform output false.
But when the plot the graph the numbers all clustered to the axis of the x axis. what is the issue ?
Hope to hear from you soon
Regards
Tino
Sorry for the typo (missing the UniformOutput).
If you only set the XTick property, you don't actually need to set the label. It looked like you wanted to have the label '2000' show up at x=2, so my code does that for you.
So maybe this code is what you meant?
labels = [0 2000 4000 6000 8000 10000 12000];
disp(plot(X));
set(gca, 'XTick', labels);
%this is now optional:
set(gca, 'XTickLabel', cellfun(@num2str,num2cell(labels),'UniformOutput',0);
Tino
Tino 2019년 5월 28일
Thanks for your response Rik.
Am sorry maybe you did not understand my question
I want to 0 1000, 2000, 3000, 4000, 50000, 6000
0 2000, 4000, 6000, 8000, 10,000, 12,000
The numbers down to replace the number up in the graph
I hope this is clearer. where I have 1000, I want to make it 2000 and so on
Regards
Tino
Rik
Rik 2019년 5월 28일
So where the actual x-postition is 1000 you want to have the label say 2000 etc?
Tino
Tino 2019년 5월 28일
Hi Rik
That is exactly what I mean
where it is 1000 i want it to be 2000
and where it is 2000 I want it to be 4000 etc
Thanks for your help in advance
Regards
tino
Then you can use this:
labels_real = [0 1000 2000 3000 4000 5000 6000];
labels_fake = [0 2000 4000 6000 8000 10000 12000];
%or just:
%labels_real=0:1000:6000;
%labels_fake=0:2000:12000;
%or even:
%labels_real=0:1000:6000;
%labels_fake=labels_real/2;
disp(plot(X));
set(gca, 'XTick', labels_real);
%this is now optional:
set(gca, 'XTickLabel', cellfun(@num2str,num2cell(labels_fake),'UniformOutput',0);
Tino
Tino 2019년 5월 28일
Thank you Rik

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Axis Labels에 대해 자세히 알아보기

제품

릴리스

R2019a

태그

질문:

2019년 5월 28일

댓글:

2019년 5월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by