Hi bas,
The challenge you're facing is common when dealing with large datasets, especially when visualizing data with varying intensities. To address your issue, you may consider the following approaches:
You can use a line-per-depth with colour mapped to your measured data. Since each of your 23 ADCP datasets is essentially a time-series at a constant depth, you can visualize them by plotting 23 coloured lines, one for each depth.
You can either use scatter to plot ‘time vs depth’, colouring each point by the flow value which will give you a discrete set of markers that are coloured according to your flow values:
scatter(time_i, depth_i, 10, flow_i, 'filled');
colormap(jet);
colorbar;
Or you can create a vertical surface in time-depth space, and apply colour from your measurements which will build a vertical ‘ribbon’ for each depth, allowing smooth colour transitions:
Tsurf = [time_i(:) time_i(:)];
Dsurf = [depth_i(:) (depth_i(:) + 0.05)];
Csurf = [flow_i(:) flow_i(:)];
surf(Tsurf, Dsurf, zeros(size(Tsurf)), Csurf, ...
'EdgeColor','interp','FaceColor','none');
If you want a 2D colour map, define a common time vector covering the entire span at your desired resolution. Define a vector of depths covering 1 to 8 meters and then interpolate each dataset onto this uniform grid:
imagesc(TimeVec, DepthVec, Cmat.');
set(gca, 'YDir', 'normal');
colormap(jet);
colorbar;
As you mentioned, the 'patch' function sometimes fails to capture the strong variations in your dataset. This happens because patch is designed for polygon-based plotting, which can lead to interpolation across large datasets, thereby smoothing out the details. This behaviour results in the loss of the intermediate variations you observed. To better capture the nuances in your data, consider using 'scatter', 'line', or 'surface plots'. These methods are more suited for line data and provide a more accurate representation of your flow measurements by preserving the detail of each data point.
For a better understanding of the above solution, refer to the following MATLAB documentations: