Rearrange halves of yaxis in graph

1 回表示 (過去 30 日間)
vanrapa
vanrapa 2019 年 4 月 24 日
編集済み: vanrapa 2020 年 3 月 24 日
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.

採用された回答

Adam Danz
Adam Danz 2019 年 4 月 24 日
編集済み: Adam Danz 2019 年 4 月 24 日
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 件のコメント
vanrapa
vanrapa 2019 年 4 月 25 日
Works perfectly. Thank you.

サインインしてコメントする。

その他の回答 (1 件)

Thorsten
Thorsten 2019 年 4 月 24 日
編集済み: Thorsten 2019 年 4 月 24 日
i = find(x == 1.25);
y = y([i+1:end, 1:i]);
  1 件のコメント
Adam Danz
Adam Danz 2019 年 4 月 24 日
編集済み: Adam Danz 2019 年 4 月 24 日
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.

サインインしてコメントする。

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by