Display out-of-range points at plot boundary?
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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 comentarios
  Matt Butts
      
 el 2 de Mayo de 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.
Respuestas (1)
  Prabin Shrestha
 el 3 de Oct. de 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 comentarios
Ver también
Categorías
				Más información sobre Annotations en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



