I'm trying to create a so-called underwater plot for a time series ts, where all of the points that follow the most recent local maximum should be below an even water surface:
But if you take a closer look at my plot, you can see that some of the water surfaces actually have an unusual bump on the right side. I can't figure out why my code creates these bumps and how to avoid that. Any help would be appreciated..
Here's my code:
for i = 1:length(ts),
water(i) = max(ts(1:i));
end
area(water,'FaceColor',[0.04,0.52,0.78]);
hold on;
area(ts,'FaceColor',[0.68,0.47,0]);

2 件のコメント

Sean de Wolski
Sean de Wolski 2013 年 12 月 31 日
Can you post the example data set as a ZIP file?
dave
dave 2013 年 12 月 31 日
Sean, ts is just an artificial time series. I generated it like this:
ts = cumsum(randn(100,1));

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

 採用された回答

Walter Roberson
Walter Roberson 2013 年 12 月 31 日

1 投票

At the point where the time series increases, max(ts(1:i)) is going to assume the new higher value. This is going to be connected to the previous max(ts(1:i-1)) that was the lower peak. So you have plot([y1 y2]) where y2 > y1, and that is going to be joined as a linear interpolation.

その他の回答 (1 件)

Image Analyst
Image Analyst 2013 年 12 月 31 日

1 投票

Those are just the prior element. If you plot with markers, you'll see that it's merely drawing a straight line from the prior element to the new, higher element. If you want to make that smaller, you'll have to make the x axis have at least as many elements as pixels across in your plot. So, like if ts is 100 elements, make it 1000 elements and those "bumps" will be narrower.

1 件のコメント

dave
dave 2014 年 1 月 1 日
I see, thanks..

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

カテゴリ

ヘルプ センター および File ExchangeMarine and Underwater Vehicles についてさらに検索

質問済み:

2013 年 12 月 31 日

コメント済み:

2014 年 1 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by