File Exchange

image thumbnail

Datetick with zooming panning and subplots

version 1.0 (4.9 KB) by

Date formatted tick labels, automatically updated when zoomed or panned.

4 Downloads

Updated

No License

Date formatted tick labels, automatically updated when zoomed or panned. Arguments are identical to those of DATETICK. Allows 2 or more subplots, keeps all of them synched using LINKPROP.

For best results with multiple subplots, call datetick2 from the axis that has the widest range of dates. This functionality could be included, but would probably needlessly bloat the code.

Example:
figure
h(1)=subplot(411);
plot(now:1:now+100,randn(101,1))
h(2)=subplot(412);
plot(now:1:now+10,rand(11,1))
h(3)=subplot(413);
plot(now+20:1:now+30,rand(11,1))
h(4)=subplot(414);
plot(now-5:1:now+5,rand(11,1))
datetick2

Comments and Ratings (18)

Using R2012b there are problems with case sensitivity and legends.

I replaced
~strcmp(get(dtd.kid(n),'tag'),'Legend').

with

~strcmpi(get(dtd.kid(n),'tag'),'Legend').

to fix the problem.

Bjoern

Bjoern (view profile)

Haven't fully tried it yet but it does seem to do the trick :)

Nicolas

hold arrowkey -> matlab crashes

Jahanzeb Mian

Wow this function is really helpful, but I lose this behavior if I save a figure and then reopen it again. I have to re-run the datetick2 function. Is there any other way?

Pieter

Pieter (view profile)

Yan

Yan (view profile)

There is one called zoomAdaptiveDateTicks (Pick of the Week)
http://www.mathworks.com/matlabcentral/fileexchange/15342

I have not found anything similar(date ticks adapt to zooming) for in 7.0 or 7.2, any clue?

David

David (view profile)

With regard to the program failure when a legend handle is found, I changed the "&&" to "&" on line 60 and changed the "Legend" to "legend" on line 61 and the program properly neglects the legend handle.

Grant

Grant (view profile)

This is a great program and it works well, except when there is a legend on the plot, then it fails. Seems like it is trying to use the axis handle of the legend rather than the x-axis handle.

Grant

Grant (view profile)

Grant

Grant (view profile)

Nathan

Nathan (view profile)

I use this ALL the time - great function!

Very useful for correlating multiple data sets.

Avinash Rude

Great!

Just what I needed.

Works like a charm!

Thanks Andrew Bliss

Andrew Bliss

Andrew Bliss (view profile)

You rate my file a 1 simply because you like your own version better? That's not very nice.

Carlos Adrian Vargas Aguilera

That's it! You copy/write 150 lines because of a single bug line! (BTW multiple axes is nothing new).

Well, I was hopping... something. I use this kind of functions a lot, thats why my extra lines do this:
- adds ticks when just 3 are displayed.
- you can use any language, not just english (for the months of course)
- you can use any dateformat, not only MATLABs defaults.
- xlabel is linked and is used to print the whole date
- yes, there is a bug which I already fix: ''catch, ME = lasterror;'' but now i'm working in other parts of the code (single axis labels, with the limits, whit a better link function), so, I haven't update it.
- yes, yours searches automatically! for the axes handles of the current plot. Mine does it manually, :( .

Yours, Carlos

Andy Bliss

Carlos - The improvement over Lauwery's is that datetick2 works for multiple subplots. The functionality is simply different from your tlabel. My code is simple (150 lines vs 750) and works with R2007a (yours doesn't b/c of the catch ME syntax).

Carlos Adrian Vargas Aguilera

Andrew, I'd like to know what is the improvement of original Lauwery's datetickzoom.m or my tlabel.m?

MATLAB Release
MATLAB 7.4 (R2007a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today