Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Label categorical axis of - graph box - with dates |
Date | Tue, 6 Nov 2012 19:00:29 +0000 |
I'd guess that what's happening is that the categorical axis labels as shown are always strings. That's the general case, after all. If they really are strings, meaning values of a string variable, that works. If they really are value labels that might contain string characters, that works. If they really are numbers, then showing the same numeric characters as a string also works. So -format()- is here is regarded as irrelevant, as supplying a date format could not change a string. That's consistent with your work-around. I haven't dived into the -graph box- code, but that's my guess. From the programmer's point of view, it's intended behaviour; it's just that you can't get what you want without a trick. This may be why -format()- is not documented as a cat_axis_label option. Nick On Tue, Nov 6, 2012 at 6:43 PM, Nick Cox <njcoxstata@gmail.com> wrote: > I'd want -format()- to work in that context. It's not listed as one of > the cat_axis_label_options, but I share Allan's surprise. > > On Tue, Nov 6, 2012 at 5:44 PM, Allan Reese (Cefas) > <allan.reese@cefas.co.uk> wrote: >> This ought to be obvious; apologies if it's well documented elsewhere. >> >> A dataset where the group variable is a date, stored as integer with %td format: >> - tab idate - shows the dates as 1apr2012 etc with count for each date >> - scatter y idate - labels the X axis with date values, though not necessarily those in the data >> - graph box y, over(idate) - >> labels the categories with the internal (SIF) values >> - graph box y, over(idate, label( angle(30) format(%td) ) ) - >> rotates the labels; format is ignored but NOT flagged as error >> >> The workround is to create a string variable containing the date strings, use that for the labels but coerce the date ordering: >> >> - g sdate=string(idate,"%td") - >> - graph box y, over( sdate, label(angle(30)) sort(idate)) - >> >> It seems a bug that the format is honoured by scatter but not by box, and another that a format option is accepted but ignored. * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/