How can I normalize one input for Patch across a subplot?

Hi there, I'm trying to use Patch to show areas of a graph where a certain event is occuring. What I want to do is have these bars show up on every figure in my subplot (which share the same x-axis), but scale the y-axis coordinates for each graph.
I was trying to use copyobj, but the maximum y-axis values are different for each part of the subplot. Here's the code for generating my patches currently - can I use 'Units','Normalized' or something similar for just the y values? Or do I have to manually put these patches into each figure
freeze_logger = [833 1394 10243 10807 19960 20528 29573 30135 38800 39362 48023 48584 57726 58292];
SEC2HRS = 2.7778e-04;
x_freeze = repelem(freeze_logger,2)*60*SEC2HRS;
y_freeze = repmat([-1e5 1e5 1e5 -1e5], 1,length(freeze_logger)/2);
freeze_patch = patch(x_freeze,y_freeze,'red','FaceAlpha',.3);

 Risposta accettata

Use coordinates -inf and +inf . Then you can copyobj . Then in the copied object you can use
max( min(YCoordinates, YUpperBound), YLowerBound )
to compute the new coordinates without needing any logical indexing or anything like that.

3 Commenti

So my y_freeze would become:
y_freeze = repmat([-inf +inf +inf -inf], 1,length(freeze_logger)/2);
and then when copying it into a following subplot figure I would do something like this?
freeze_patch1 = copyobj(freeze_patch,ax1);
freeze_patch1.YData = max( min(YCoordinates, YUpperBound), YLowerBound );
I can see what your code is meant to do, just not sure how to incorporate the max(min) part into the copyobj
freeze_patch1 = copyobj(freeze_patch,ax1);
freeze_patch1.YData = max( min(freeze_patch1.YData, YUpperBound), YLowerBound );
Works perfectly, thank you so much for the help!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Interactions, Camera Views, and Lighting in Centro assistenza e File Exchange

Prodotti

Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by