Statalist The Stata Listserver

[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Modifying a graphics command: problem with nested suboptions

From   "Eva Poen" <>
Subject   st: Modifying a graphics command: problem with nested suboptions
Date   Thu, 8 Jun 2006 14:39:54 +0100

Dear all,

I am in the process of writing a small graphics command. It is
supposed to produce a bar chart like

-graph bar (mean) price, over(rep78) by(foreign)-

but with the number of observations (or percentages) represented by
each bar added to the graph. The program is based on some code
suggested by Nick Cox to one of my colleagues.

So far, my syntax statement reads:

syntax varlist(min=2 max=2) [if] [in] [, BY(varname) *]

I added the * to the options list to capture any general graphics
options the user might give. But I need to explicitly state the by()
option (instead of leaving it to *), because I need the by-Variable in
some of the calculations before creating the graph.

The problem comes with the nested suboptions for -graph, twoway-. If
the user specifies the by() option in my program, some of the general
graphics options need to go inside by() for the final graph (e.g.
legend(position()), title()) while others go outside by(), like
xlabel(), xtitle(), legend(col()).

How can I best implement this in my program? I thought about adding
another option called byoption to capture everything that needs to go
inside by(), but it seems rather inelegant. Or is there an easy way to
scan the general options list created by * for the existence of by()
and extract just the variable name, for use in my calculations?

Thanks a lot,
*   For searches and help try:

© Copyright 1996–2023 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index