# Re: st: Formatting a twoway graph with different scaled y axes

 From "Scott Merryman" To statalist@hsphsun2.harvard.edu Subject Re: st: Formatting a twoway graph with different scaled y axes Date Mon, 8 Dec 2008 14:08:44 -0600

```1.  You need to specify that the range() option is for the second
yaxis:  -yscale(range(0) axis(2)) -

2.  Use -scatter- with the -mlabel()- option.

For example:

sysuse auto,clear
collapse mpg trunk, by(rep)

twoway bar mpg rep, yaxis(1) yscale(range(0) axis(1)) ///
|| line trunk rep , sort yaxis(2) yscale(range(0) axis(2)) ///
|| scatter mpg rep, mlabel(mpg) mlabpos(12) m(none) yaxis(1) ///
|| scatter trunk rep ,mlabel(trunk) mlabpos(3) m(none) yaxis(2) ///
|| ,legend(order(1 3))

Scott

On Mon, Dec 8, 2008 at 1:45 PM, René Geppert
> Hi, I am using Stata/SE 10 for Windows.
>
> I generated a graph using the following (simplified) code:
>
> . twoway (bar var1 Quarter, yaxis(1) yscale(range(0))) (line var2 Quarter,
> yaxis(2) )
>
> I do so in order to obtain two y-axes (left and right hand side) with a
> different scale. To format the graph properly I experienced two problems:
> a) Both axes start at their minimum values, which I can fix for the left
> hand side y-axis using yscale(range(0)), which does not work for the right
> hand side y-axis for some reason. Why is that and how can I achieve the same
> effect there?
> b) var 1 and var 2 have 6 observations (at each instance of Quarter). How
> can I get a label at each instance in the graph for the line and bar plot,
> respectively? That is, show the observation values for example inside each
> bar and above the line. The blabel option which one can usually use in a bar
> graph does not work in the twoway bar version.
>

*
*   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/
```