Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Label categorical axis of - graph box - with dates

From   Nick Cox <>
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.


On Tue, Nov 6, 2012 at 6:43 PM, Nick Cox <> 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)
> <> 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:

© Copyright 1996–2016 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index