Control Text Label on plot with categorical axis
13 views (last 30 days)
Show older comments
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')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/546412/image.png)
0 Comments
Accepted Answer
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
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'.
More Answers (0)
See Also
Categories
Find more on Axis Labels 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!