How to add different texts in xline, when using arrayfun ?

1 view (last 30 days)
How to add different texts in xline, when using arrayfun, as in the following example?
% Input and current status
fig = figure();
ax = axes(fig);
ax.XTick = 1:14;
hold on
arrayfun(@(x)xline(x,'-','S','LabelOrientation','horizontal','Color',[.5 .5 .5]), 0:13)
% Desired Output:
  2 Comments
Antoni Garcia-Herreros
Antoni Garcia-Herreros on 17 Mar 2023
Hello Sim,
You could try something like this for each case:
a(3).Label='M';a(3).Color='k'; % Maybe change FontName and FontSize
Although I'm sure there must be a better way of doing it.
I cannot find a way to have different color for the text and the lines.
Sim
Sim on 17 Mar 2023
Thanks a lot @Antoni Garcia-Herreros... :-) Actually, I was looking for a little bit "more automatic" way to do so... :-)

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 17 Mar 2023
Perhaps something like this —
fig = figure();
ax = axes(fig);
ax.XTick = 1:14;
dy = ["S","S","M","T","W","T","F"];
hxl = xline(ax.XTick-1,'-k',repmat(dy,1,fix(max(ax.XTick)/7)), 'LabelOrientation','horiz');
.
  4 Comments
Sim
Sim on 17 Mar 2023
Edited: Sim on 17 Mar 2023
ah ok cool! Again many thanks :-)
.....Also..... just in case you want to get another "Accepted Answer" ..........there would be also this small thing here........ :-) :-)
Star Strider
Star Strider on 17 Mar 2023
Thank you for the reference!
I posted an Answer to it.

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings 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!