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, **statalist.org** is already up and running.

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

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

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

Date |
Wed, 7 Nov 2012 11:44:47 +0000 |

Note that although Allan's work-around solves his problem completely, it hinges on being able to specify one variable for what is shown and another variable for the sort order. In other graph programs you might not have both of those controls at once. If you couldn't do that, and a -format()- suboption doesn't apply, another trick would be assign value labels to the date variable that contained the date format. Illustrating with Allan's problem g sdate=string(idate,"%td") labmask idate, values(sdate) graph box y, over( idate, label(angle(30))) should work too. Here -labmask- is from SJ. Nick On Tue, Nov 6, 2012 at 7:00 PM, Nick Cox <njcoxstata@gmail.com> wrote: > 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/

**References**:**st: Label categorical axis of - graph box - with dates***From:*"Allan Reese (Cefas)" <allan.reese@cefas.co.uk>

**Re: st: Label categorical axis of - graph box - with dates***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: Label categorical axis of - graph box - with dates***From:*Nick Cox <njcoxstata@gmail.com>

- Prev by Date:
**Re: AW: st: prgen option quadratic term** - Next by Date:
**st: Problems estimating margins with factor variables in cmp** - Previous by thread:
**Re: st: Label categorical axis of - graph box - with dates** - Next by thread:
**st: Twoway graph** - Index(es):