Display out-of-range points at plot boundary?

6 ビュー (過去 30 日間)
Christopher Hunt
Christopher Hunt 2022 年 5 月 2 日
回答済み: Prabin Shrestha 2022 年 10 月 3 日
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.
  2 件のコメント
Jonas
Jonas 2022 年 5 月 2 日
編集済み: Jonas 2022 年 5 月 2 日
so what about setting the y values which are greater than your specific y-value equal to your maximum? something like
ylim([0 myMax]); plotY=y; plotY(plotY>myMax)=myMax; plot(x,plotY,.....)?
Matt Butts
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
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.

カテゴリ

Help Center および File ExchangeAnnotations についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by