フィルターのクリア

Help with 'underwater' plot

2 ビュー (過去 30 日間)
dave
dave 2013 年 12 月 31 日
コメント済み: dave 2014 年 1 月 1 日
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 日
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 日
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..

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

カテゴリ

Help Center および File ExchangeMarine and Underwater Vehicles についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by