Control Text Label on plot with categorical axis

8 views (last 30 days)
Hi all,
I am using "plot" to create a plot with lines and scatter points. The x-axis is numerical, the y-axis categorical. I would like to add labels to each datapoint, but I am having trouble positioning them. I would like to add a vertical offset, but since the y-axis is categorical I don't know how. I am using the text() command.
Is there any other way to specify the y-location of a label, perhaps by a pixel offset?
Thank you very much!
Example Code:
y={'LGPS', 'LGPS'};
x=[37.19, 40];
quellen={'Wang 2019', 'Wu 2020'};
y=categorical(y);
plot(x,y,'or');
hold on
text(x,y,quellen, 'vert','bottom','horiz','center')

Accepted Answer

Chad Greene
Chad Greene on 11 Mar 2021
Have you tried using the 'vertical' and 'horizontal' alignment options?
plot(5,6,'o')
text(5,6,'default text')
text(5,6,'above the dot!','vert','bottom','horiz','center','fontangle','italic')
  5 Comments
Chad Greene
Chad Greene on 11 Mar 2021
Edited: Chad Greene on 11 Mar 2021
Oh, I see what you mean. This isn't a very elegant fix, but what about adding an empty text line below each label? You could do that like this:
quellen={{'Wang 2019';' '}, {'Wu 2020';' '}};
If that puts it too far away from the center of the dot, you could set the vertical alignment to 'middle'.
Lovis Wach
Lovis Wach on 11 Mar 2021
nice! That does it! Thank you so much, marked as solution :)

Sign in to comment.

More Answers (0)

Categories

Find more on Categorical Arrays 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!