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.

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

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by