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?

 Réponse acceptée

Cris LaPierre
Cris LaPierre le 8 Déc 2020

0 votes

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]))

5 commentaires

SWARNENDU PAL
SWARNENDU PAL le 8 Déc 2020
thank you for your answer. But 0,6,12,18 should be replaced by 5:30,11:30,17:30 and 23:30. Sorry i forget to mention that. So basically 5:30,11:30,17:30 and 23:30 these values will be overwritten. Thank you once again
Cris LaPierre
Cris LaPierre le 8 Déc 2020
You have 24 data points in Y for each month. What should their corresponding x-values be (for all 24)?
SWARNENDU PAL
SWARNENDU PAL le 9 Déc 2020
those will be hour. But in my data set those time are given in UTC time zone. So I have to shift my time as per IST time zone. So after tried many thing i have done this,the code is given below :
xticks([0 6 12 18])
xticklabels({'05:30','11:30','17:30','23:30'})
this code will replace 0,6,12,18 by 5:30,11:30,17:30,23:30.Thanks for your support sir.
Cris LaPierre
Cris LaPierre le 9 Déc 2020
Modifié(e) : Cris LaPierre le 9 Déc 2020
Ok, sorry for my misunderstanding.
Yes, changing xlabels is one way, but in this situation, I think it is better to update the underlying data and use xticks.
% Create x, y data
xUTC = hours(0:23)'; % durations - no date associated with it
xIST = xUTC + hours(5.5);
y=rand(24,6);
plot(xIST,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(xIST(1:6:end))
●
SWARNENDU PAL
SWARNENDU PAL le 9 Déc 2020
Thank you sir.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Distribution Plots dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by