MATLAB: How to manipulate ytick

diurnal cycleplot

I have plotted this graph with the following code :
plot(0:23,ozone_values(:,1),0:23,ozone_values(:,2),0:23,ozone_values(:,3),0:23,ozone_values(:,4),0:23,ozone_values(:,5),0:23,ozone_values(:,6),'LineWidth',1.3)
xlabel('Hour')
ylabel('Concentration of ozone (in ug/cm)')
title('Diurnal variation of Ozone')
legend('Jan','Feb','Mar','Apr','May','Jun')
set(gca, 'Xtick',(0:6:23))
xlim([0 23])
So my problem is that I want to change the xtick labels, given is in utc and i want to covert it in ist. For data sets i have done that part but i could not manipulate the xtick values. Those ticks will be 5:30,11:30,17:30 and 23:30 instead of 0,6,12 and 18. How can i do this particular change?

Best Answer

First, let's clarify that you want to modify the xtick values, not ytick.
The best approach is to have your x values be datetimes or durations. They your xticks will be time values. You can then set the values using xtick and their appearance using xtickformat.
% Create x, y data
x = (duration(0,30,0) + hours(0:23))'; % durations - no date associated with it
y=rand(24,6);
plot(x,y,'LineWidth',1.3)
xlabel('Hour')
ylabel('Concentration of ozone (in ug/cm)')
title('Diurnal variation of Ozone')
legend('Jan','Feb','Mar','Apr','May','Jun')
% Format and place ticks as desired
xtickformat("hh:mm")
xticks(hours([5.5 11.5 17.5 23.5]))