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.

# st: RE: RE: Graphing: How to suppress labels on second y axis

 From Nick Cox To "'statalist@hsphsun2.harvard.edu'" Subject st: RE: RE: Graphing: How to suppress labels on second y axis Date Thu, 30 Sep 2010 21:20:32 +0100

```That's correct. The maximum is put in r(max) after -summarize- but all r-class results are ephemeral and the next r-class command will overwrite or obliterate them. So, make all the use you want of r(max) before it is lost.

(Since many graphics commands do some computation internally they may well use an r-class command.)

The other side of the coin from my previous advice is that if you want to keep hold of a result you should indeed store it. Your code didn't show that you wanted to do that.

That said, it is not clear why you want to repeat exactly the same calculations. Don't you have the results stored in the variable you generated?

If they are not really the same calculations, then it is natural that the same command might need to be repeated on different data.

For a start on documentation, see help on -saved results-.

Nick
n.j.cox@durham.ac.uk

McDermaid, Cameron

Having tested this a little more thoroughly, unless I'm doing something wrong (script below) it appears r(max) isn't maintained in the loop so is missing when the alert`lev' is to be reset to 1, resulting in a missing values for the operation.

The solution is to use the local macro assignment of r(max) as I did previously or insert sum `lev'normalized, meanonly  before alert`lev'=alert`lev'/r(max) when the alert`lev' is to be reset to 1.

-cam

loc levels=" Respiratory Asthma ILI"
foreach lev of loc levels {
sum `lev'count, meanonly
<<GRAPHING ACTIVITY>>
}

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-
> statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
> Sent: September 30, 2010 1:04 PM
> To: 'statalist@hsphsun2.harvard.edu'
> Subject: st: RE: RE: RE: Graphing: How to suppress labels on second y
> axis
>
> Two small points. It's a smidgen quicker and shorter to write
>
> sum `lev'normalized, meanonly
> in line plot */
>
> 1. -su, meanonly- despite its name yields the maximum (and some other
> stuff you can ignore). This is discussed at excruciating length in
>
> SJ-7-3  st0135  . . . . . . . . . . . Stata tip 50: Efficient use of
> summarize
>         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N.
> J. Cox
>         Q3/07   SJ 7(3):438--439                                 (no
> commands)
>         tip on using the meanonly option of summarize to more
>         quickly determine the mean and other statistics of a
>         large dataset
>
> 2. The business of putting r(max) in a local, and then reading from the
> local, can be shortened. This has been called "cutting out the middle
> macro".
>
> Nick
> n.j.cox@durham.ac.uk
>
> McDermaid, Cameron
>
> I've made a tweak to Nick's suggestion below.  One rationale for using 2
> axes was that the primary Y axis is one scale that can vary with the
> data and the second Y axis is fixed from 0 -1 . Using Nick's suggested
> script below uses the alert's actual value (missing, 1) is plotted on
> the primary Y axis and is often out of scale as to be not easily seen,
> depending on the line graph data.
>
> What I've done is adjust the alert value (1) to the maximum value of the
> data in the line plot then back to 1 once the plot is done.
>
> e.g.
>
> quietly: sum `lev'normalized
> local maxval: display `r(max)'
> value in line plot */
>
> ms(i)
>
> plot loop*/
>
> This seems to be working.  Thanks again to Nick for a kick in the right
> direction.

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```