Effacer les filtres
Effacer les filtres

Rearrange halves of yaxis in graph

2 vues (au cours des 30 derniers jours)
vanrapa
vanrapa le 24 Avr 2019
Modifié(e) : vanrapa le 24 Mar 2020
Hello,
I need to rearrange my graph. I would like to rearrange the y axis so that, y for x=1.25 to 2.1 will be placed before the y values of x = 0 to 1.25. But there shouldn't be any change in the xaxis. I don't think I can use 'fliplr' for this. But I am not able to figure out the code to do this through indexing.
Pls help me.

Réponse acceptée

Adam Danz
Adam Danz le 24 Avr 2019
Modifié(e) : Adam Danz le 24 Avr 2019
If I understand correctly, move the section of data from x=1.25 to x=2.1 and place that segment just before x=0.
Assuming you have two variables x & y that were used to plot your data: plot(x,y),
segmentStart = 1.25;
segmentStop = 2.1;
placeBefore = 0;
newIdx = [...
find(x<min(placeBefore, segmentStart)), ... %index values prior to insertion point
find(x>=segmentStart & x<=segmentStop), ... %index values of segment to be moved
find(x>=0 & x<segmentStart), ... %index values of section between insertion point and start of segement
find(x>segmentStop),... %indes values following the segment
];
plot(x, y(newIdx))
  1 commentaire
vanrapa
vanrapa le 25 Avr 2019
Works perfectly. Thank you.

Connectez-vous pour commenter.

Plus de réponses (1)

Thorsten
Thorsten le 24 Avr 2019
Modifié(e) : Thorsten le 24 Avr 2019
i = find(x == 1.25);
y = y([i+1:end, 1:i]);
  1 commentaire
Adam Danz
Adam Danz le 24 Avr 2019
Modifié(e) : Adam Danz le 24 Avr 2019
This assumes the x values contain the discrete value of 1.25. If there data are x=[..., 1.246, 1.251, ...] this will break. It also asumes the data start with x=0 and end with x=2.1.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Object Programming dans Help Center et File Exchange

Produits


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by