Heatmap on 1d-time series data
8 ビュー (過去 30 日間)
古いコメントを表示
Hello community,
i got several events on a 1-dimensional double Vector (about 60.000 x 1) (like a logical vector).
VecEvents=[0 0 0 1 0 1 0 1 1 0 1 0 0]; % 60.000x1 double
I extracted the timepoints the events occured and plotted them on a horizontal line to mark events:
Events=find(VecEvents==1);
y=ones(length(Events),1));
scatter(Events,y);
Here is an example of my real data:
![Scatter.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/270525/Scatter.png)
What I want is something like a coloured line or bar which highlights density of events.
My first approach was to smooth the vector linearly by a moving mean:
SmoothedEvents=movmean(Events,600);
So, this is not a solution, but if I plot my averaged vector against the time it will look like this:
t=1:length(SmoothedEvents); % I used a different vector for x-axis in the plot underneath
plot(t,SmoothedEvents);
![movmean.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/270526/movmean.png)
Does anyone have a suggestion how to create a 1-dimensional heatmap (or something similar - see above) from my data? Is there even a better approach than averaging the vector?
0 件のコメント
採用された回答
KSSV
2020 年 2 月 8 日
YOu can use somehting linke this:
x = 0:.05:2*pi;
y = sin(x);
z = zeros(size(x));
col = x; % This is the color, vary with x in this case.
surface([x;x],[y;y],[z;z],[col;col],...
'facecol','no',...
'edgecol','interp',...
'linew',5);
colorbar
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Distribution Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!