Plot with x-axis label in Hour instead of Second

5 views (last 30 days)
Hello Guys,
I am trying to plot a graph for data attached, that has temperature.
When I plot it using
T = readtable("Q.csv");
plot(T.Temp)
xlabel('Time(s)')
ylabel('Temp(c)')
grid on
grid minor
it gives me a plot given in attached file
Since I don't have time/duration on data, therefore matlab is defaulting time between each cell as 1 sec(which is conincidently correct on my data).
I would like to make a plot with x-axis units in Hours instead of minutes with given data.
I am tying to do this by creating an array for time(HR) and concatenating with data but no luck. I have ~50 excel files which are similar to attached file.
Any help/suggestion would be appreciated.
Thanks

Accepted Answer

dpb
dpb on 10 Aug 2022
tT=readtable("Q.csv");
tT=addvars(tT,seconds(1:height(tT)).','before','Temp','NewVariableNames','T');
tT.T.Format='h';
plot(tT.T,tT.Temp)
xlabel('Time')
ylabel('Temp(\circC)')
grid on
grid minor
  2 Comments
dpb
dpb on 10 Aug 2022
The above will give default plot units of the units in the data table -- you can also leave them as seconds and then change the format of the x-axis datetimeruler object.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!