Plot a time-depth temperature contour graph
Show older comments
Hi guys,
This is my first time using Matlab ever, so as you can imagine I am a bit lost.
I have to plot a contour graph with time as x, depth as y and temperatures as z. The data looks like this on excel :

I looked for tutorials on Internet but I am completely lost. Could someone please give me some hints as to where to start, for example only how to make the data useable on Matlab ? I tried the 'xlsread' command but I have no idea what to do next... any king of help would be great ! Thank you !
[Merged from essentially same question]
Hi guys,
So I have this data and I am trying to plot a contour graph with : depth as Y, the hours as X, and the temperature as the data assigned to each depth and hour. But whatever I try, I have something that does not work, be it matrix dimension or something else. I do not understand how I should define each variable, X Y Z, when it shouldn't be too complicated ! does anyone have any kind of hints or help ? The blanks are simply times when the temperature could not be recorded, but that shouldn't be a problem in a contour plot should it ?? I am getting really desperate
3 Comments
Walter Roberson
on 18 Nov 2017
What should happen for the places that are blank? Are those to be interpolated, or are they to be understood as outside of the image?
Louis van Herwijnen
on 18 Nov 2017
Louis van Herwijnen
on 18 Nov 2017
Accepted Answer
More Answers (1)
Hi @Walter Roberson or anyone else who could help. I have a very similar problem. My imported data looks like this:

Is the Var1 column a datetime? I use the code below and get this error:
"Error using contourf
Input arguments must be numeric or objects which can be converted to double."
I've tried turning the datetime into a number with datenum (commented out below) but I haven't had success with that either. It gives the error:
"Error using datenum
DATENUM failed.
Caused by:
Error using datevec
The input to DATEVEC was not an array of character vectors or strings."
%% Import Data
filename = "Plots_mmddyyyy.dat";
A = readtable(filename);
Aopts = detectImportOptions(filename);
%% Partition Table Data Into Variables
Depth = A(1,2:end);
Time = A(2:end,1);
Temperature = A(2:end,2:end);
%Ttime = datenum(Time);
%% Plot
contourf(Time,Depth,Temperature)
6 Comments
Walter Roberson
on 18 Jul 2022
Which MATLAB version are you using?
Ruben
on 18 Jul 2022
R2022a.
Sorry for posting my question here as an answer in someone else's thread. I only read your recommendation after posting this. I read through the link you sent me and I have a better idea of how to ask questions in the future. Thanks for your patience.
Walter Roberson
on 18 Jul 2022
%% Import Data
filename = "Plots_mmddyyyy.dat";
Aopts = detectImportOptions(filename);
A = readtable(filename, Aopts);
%% Partition Table Data Into Variables
Depth = A(1,2:end);
Time = A(2:end,1);
Temperature = A(2:end,2:end);
%Ttime = datenum(Time);
%% Plot
contourf(datenum(Time), Depth, Temperature)
Ruben
on 19 Jul 2022

Walter Roberson
on 20 Jul 2022
%% Import Data
filename = "Plots_mmddyyyy.dat";
Aopts = detectImportOptions(filename);
A = readtable(filename, Aopts);
%% Partition Table Data Into Variables
Depth = A{1,2:end};
Time = A{2:end,1};
Temperature = A{2:end,2:end};
%% Plot
contourf(datenum(Time), Depth, Temperature)
Categories
Find more on Dates and Time 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!