How do I change the timezone of the X axis on an existing plot?
조회 수: 8 (최근 30일)
이전 댓글 표시
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
dpb
2018년 10월 1일
편집: dpb
2018년 10월 1일
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.
채택된 답변
Benjamin Kraus
2023년 3월 17일
편집: Benjamin Kraus
2023년 3월 17일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Line Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!