Display out-of-range points at plot boundary?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a plot with a wide range of y-values. If I plot the entire range I lose a lot of detail I am after in the lower values. Is there a way to set a y-axis maximum, then have points with values above this maximum plotted on the upper y-boundary of the plot? Then I can annotate their actual values. I suppose I could put them in by hand with a graphic editor, but I'm hoping for a more elegant solution. See attached example plot for a rough sketch of what I am imagining. Many thanks in advance.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/985715/image.jpeg)
2 Kommentare
Matt Butts
am 2 Mai 2022
Do you need this to be dynamic to the y axis range? Could you get away with applying a simple min(...) to your data prior to plotting? You could then use text(...) to add annotations for all points where y == myMaxValue.
Antworten (1)
Prabin Shrestha
am 3 Okt. 2022
I workaround this using text (https://www.mathworks.com/help/matlab/ref/text.html) and scatter (https://www.mathworks.com/help/matlab/ref/scatter.html)
plotX: your x-axis values
plotY: your y-axis values
yLimVal: value you want to be limited in y-axis
fontSize: font size you want the text to be
ofBnd = plotY >= yLimVal;
scatter(plotX(ofBnd), ones(sum(ofBnd), 1)*yLimVal)
text(plotX(ofBnd), ones(sum(ofBnd), 1)*(yLimVal-0.1), ...
num2str(plotY(fovObndInd)), 'HorizontalAlignment', 'center',...
'fontWeight', 'bold', 'fontSize', fontSize)
This works for plots with positive y-values but can be extended to any range of y-values. You can experiment with the value you need to decrease (or increase if you use simialr approach in negative y-axis) from y-lim values in (yLimVal-0.1) for proper text location based on your range of y-limits.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!