How do I change the timezone of the X axis on an existing plot?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Andrew Liu
le 1 Oct 2018
Modifié(e) : Benjamin Kraus
le 17 Mar 2023
Suppose I have a figure with one or more line objects, e.g.
T = datetime(2018,1,1,0,0,0,'TimeZone','UTC')+minutes([0:9]); y1 = 1:10; y2 = 10:-1:1; figure; plot(T,y1); hold all; plot(T,y2);
Now I want the X axis to display in a different timezone, e.g. 'Asia/Taipei'. I've tried modifying the x limits, the x tick values, the properties in the date-time ruler, the individual XData in the line objects, and making changes after turning off visibility of the XAxis and Line objects. Each time I change the time zone in one of these object properties, the zone is automatically reverted to UTC. Is there anything I can do short of copying the data out of my original figure and re-plotting new data in an updated time-zone?
1 commentaire
dpb
le 1 Oct 2018
Modifié(e) : dpb
le 1 Oct 2018
I confirm the behavior here (R2017b); looks like a bug to me; seems as though the axis ought to reflect the date/time including timezone of the underlying data, agreed.
I'd report it as a bug; see the "contact us" link at top of page or email <mailto:support@tmw.com support@tmw.com>; attach link to the Q? here.
Réponse acceptée
Benjamin Kraus
le 17 Mar 2023
Modifié(e) : Benjamin Kraus
le 17 Mar 2023
Starting in MATLAB R2023a, you can now update the time zone of the x-axis on existing plots by setting the ReferenceDate on the ruler.
T = datetime(2018,1,1,0,0,0,'TimeZone','UTC')+minutes([0:9]);
y1 = 1:10;
y2 = 10:-1:1;
figure;
plot(T,y1);
hold all;
plot(T,y2);
ax = gca;
ax.XAxis.ReferenceDate = datetime(2018,1,1,0,0,0,'TimeZone','Asia/Taipei');
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Line Plots 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!