MATLAB Answers


Is there a way to change the format of a datetime object that affects its display when plotting?

Asked by Matt
on 10 Oct 2019
Latest activity Answered by Walter Roberson
on 10 Oct 2019
The default Format for a datetime object is:
'dd-MMM-uuuu HH:mm:ss'
If I modify the format to include the time zone, Format becomes:
'dd-MMM-uuuu HH:mm:ss z'
However, when I create a plot with the datetime object, the format of the tick labels does not change. It appears the "Format" property is not used when plotting. Is this true? If so, is there any way to set the format of the datetime object so it will be displayed that way whenever it is plotted? You can use 'xtickformat' after you create the plot, but you have to do that every time you create a plot. Also, this adds the time zone to every tick label, which isn't ideal. It would make more sense if MATLAB handled that in a similar manner to the way it handles the year by default when you plot a datetime object; the year is displayed once, under the rightmost tick label. Is there any way to do this, without resorting to some manual creation of a label on the plot?


Sign in to comment.




1 Answer

Answer by Walter Roberson
on 10 Oct 2019

No, you would have to set the individual tick labels.
plot() can only set object properties, so it cannot enact any behaviour that is not supported by an axes property. The only potentially relevant properties are TickLabelFormat and the hidden property DataFormat. DataFormat appears to be a copy of the Format of the first datetime object used on the axes; I have not figured out what it is used for yet.


Sign in to comment.