How to make a graph that shows evolution of a variable in time through different depths in a lake.

28 views (last 30 days)
Hi all, I saw this graph a lot in papers (like the image below), but I do not have any idea how to make it in Matlab. I want to show a lake's temperature evolution through time in different depths, like the graph I attached. I have a matrix: Z=3705x38 matrix which shows data from 38 depth levels during 3705 days (each column is data from a sensor deployed in the depth of the lake). Please consider that the depth intervals are not the same and I want to show that is lake. so as in the picture, the x axis should be the time, the y axis should be depth and the graph legend shows the temperature range. Your advice will help me tons

Accepted Answer

jonas
jonas on 20 Oct 2018
Edited: jonas on 20 Oct 2018

Just create a surface object.

d  =  is your depth (1x38)
t  =  is your time (1x3705)
Te  =  is your temperature (3705x38)
surf(t,d,Te,'edgecolor','interp')
set(gca,'YDir','reverse')

simple as that. I would consider first changing the time to a datetime or duration array.

  2 Comments
jonas
jonas on 20 Oct 2018
Edited: jonas on 20 Oct 2018
set the view to
view([0 90])
I don't know why you spam the forum with this question. It's a very basic plot. You could also use pcolor, imagesc or contourf. The syntax is literally the same.
contourf(t,d,Te)
imagesc(t,d,Te)
pcolor(t,d,Te)
The image you uploaded is however not a contour plot. It is most likely a 3d plot.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 20 Oct 2018
I'd use imshow() with a colormap. If you need to digitize spatial data that is not yet on a regular grid, with values at every point, then you can use scatteredInterpolant. If you can't figure it out, attach your Z array in a .mat file.

Categories

Find more on Contour Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!