Effacer les filtres
Effacer les filtres

Display out-of-range points at plot boundary?

13 vues (au cours des 30 derniers jours)
Christopher Hunt
Christopher Hunt le 2 Mai 2022
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 commentaires
Jonas
Jonas le 2 Mai 2022
Modifié(e) : Jonas le 2 Mai 2022
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 le 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.

Connectez-vous pour commenter.

Réponses (1)

Prabin Shrestha
Prabin Shrestha le 3 Oct 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.

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by