Hi all! I'm asking a little but of support for solving a small issue concerning the following plot:
I would like to improve its readability because for large time spans, all you can see are small spikes of non-zero data basically. Which is absolutely correct, but hard to interpret.
I tried to use 30 days or 60 days movmean (over a total time span of 15 years) to smooth the underlying data being plotted, but unfortunately the obtained result, despite the readability improvement, wasn't so great. All the other smoothing functions I tried completely messed up the plot, which must represent a zero-inflated value.
I was looking for a good solution half-way between a movmean and raw data. Something that can preserve the original magnitude and spikes, providing a visual improvement of the "trend". A sort of interpolation over high and low spikes of data. Something like this (sorry, I'm really bad at drawing):
Can you suggest me a way to obtain that?
I attached the test data I'm using to produce the plot above.

 채택된 답변

Star Strider
Star Strider 2020년 3월 8일

0 개 추천

That looks like something the envelope function would return.

댓글 수: 2

Tommaso Belluzzo
Tommaso Belluzzo 2020년 3월 8일
Yes... we are on the good path here. Absolutely.
I tried using peak envelope, it's good but there are two major problems for now: finding a generalized value for peaks separation and placing a constraint so that envelope cannot go below zero.
Star Strider
Star Strider 2020년 3월 8일
I am not certain that there is any way to constrain it, although it has a number of parameters (for example 'peak') that you might be able to manipulate to get an acceptable result.
The only other option I can suggest is the sgolayfilt function. It has a few more options, although I am not certain that it can be constrained to remain positive.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Annotations에 대해 자세히 알아보기

제품

태그

질문:

2020년 3월 8일

댓글:

2020년 3월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by