How to repeat a pattern on xticks?
5 views (last 30 days)
Show older comments
Wolfgang McCormack
on 12 Mar 2021
Commented: Mathieu NOE
on 12 Mar 2021
Hi all,
I have the following for a plot. How can I make the A,B,C,D,E repeat for 100 times on the x label with the same patttern A,B,...
set(gca,'XTickLabel',{'A','B','C','D','E'})
Also, is there anyway to make it appear 90° rotated on the x axis?
0 Comments
Accepted Answer
Star Strider
on 12 Mar 2021
Try this:
x = 0:24;
y = rand(size(x));
figure
plot(x, y)
set(gca, 'XTick',x, 'XTickLabel',{'A','B','C','D','E'}, 'XTickLabelRotation',90)
I restricted the x-axis to go from 0 to 24 to make it readable. To use 100 values for ‘x’ may require a smaller font as well, although this could affect the font size for both axes. Another option is to increase the figure width using the 'Position' property. See the documentation section on Position and Size for information on that.
2 Comments
Star Strider
on 12 Mar 2021
It depends on the result you want. To change the entire figure size, use the OuterPosition property.
Example —
x = 0:99;
y = rand(size(x));
figure
plot(x, y)
set(gca, 'XTick',x, 'XTickLabel',{'A','B','C','D','E'}, 'XTickLabelRotation',90)
opos = get(gcf,'OuterPosition');
set(gcf, 'OuterPosition',opos+[-750 -500 1050 500])
Experiment with the vector in the last line to get different results. Use the Position property (that apparently does not have a direct link) to change the size of the drawable area.
More Answers (1)
Mathieu NOE
on 12 Mar 2021
hello
this is an example for 20 repetition of the 5 letters pattern + 90° rotated
plot(1:100,randn(1,100));
set(gca,'XTick',(1:100),'XTickLabel',repmat({'A','B','C','D','E'},1, 20))
xtickangle(90)
2 Comments
Mathieu NOE
on 12 Mar 2021
that's life ! it's hard to beat a MVP !! I have to admit I still have to learn a few things before I'm up to the task
See Also
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!