How can I plot two different datetime vectors in the same graph?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi All,
I have two datetime vectors (time1 and time2) with different sample period and different lengths.
Each of these vectors corresponds to different variable. For example - the first vector (time1) corresponds to to water velocity (V) in a river, and the second (time2) to rain intensity (R).
Since they cover the same time range (April to November, 2018) I would like to plot them on the same graph. However, I don't seem to manage doing so, probably because they differ in length and sample frequency.
Could anyone share any solution to that?
Thanks, Ron
7 commentaires
Réponses (2)
Caglar
le 9 Nov 2018
Modifié(e) : Caglar
le 9 Nov 2018
Comment if any part is not clear.
first_date_array=datetime('today'):days(1):datetime('today')+days(10); %array for 10 days
first_data=1:1:11;
second_date_array=datetime('today'):days(2):datetime('today')+days(15); %array for 15 days and it has data for each 2nd day only
second_data=8:-1:1;
figure(1); %method 1: plot them together
plot(first_date_array,first_data,'o',second_date_array,second_data,'o'); %x,y,markershape,x,y,markershape
xlabel('Datetime'); ylabel('Data')
legend('First','Second')
figure(2); %method 2: add new plots using hold on
plot(first_date_array,first_data,'o');
hold on
plot(second_date_array,second_data,'o');
xlabel('Datetime'); ylabel('Data')
legend('First','Second')
0 commentaires
madhan ravi
le 9 Nov 2018
Modifié(e) : madhan ravi
le 9 Nov 2018
Or try
yyaxis right
plot(time1, V)
yyaxis left
plot(time2, R)
See https://www.mathworks.com/matlabcentral/answers/5456-get-plotyy-second-axis-handle#answer_7638 for grabbing handles of each axis
Also notice the X axis which is not in a datetime format (although the vectors are!)
xtickformat('dd-MMM-yyyy')
An example:
t = datetime(2014,6,28) + calweeks(0:9);
y = rand(1,10);
yyaxis left
plot(t,y);
y = 1:10;
yyaxis right
plot(t,y(1:numel(t)));
AX=findall(0,'type','axes');
AX(2) %grabs second axis handle experiment and see by scrolling the graph
xtickformat(AX,'dd-MMM-yyyy')
0 commentaires
Voir également
Catégories
En savoir plus sur Two y-axis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!