Display out-of-range points at plot boundary?
조회 수: 13 (최근 30일)
이전 댓글 표시
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
Matt Butts
2022년 5월 2일
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.
답변 (1개)
Prabin Shrestha
2022년 10월 3일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!