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.

Re: st: How to start a bar graph with a minimum other than 0

 From Nick Cox To statalist@hsphsun2.harvard.edu Subject Re: st: How to start a bar graph with a minimum other than 0 Date Wed, 31 Aug 2011 16:50:09 +0100

```You are correct. -yscale(range())- will never exclude what would
otherwise be shown, but -exclude0- will do what you want (so long as
the smallest value shown is positive). Consider this sequence.

. sysuse auto, clear
(1978 Automobile Data)

. graph bar (mean) mpg, over(rep78)

. graph bar (mean) mpg, over(rep78) exclude0

. graph bar (mean) mpg, over(rep78) exclude0 ysc(r(10(10)40))

. graph bar (mean) mpg, over(rep78) exclude0 ysc(r(10,30))

. graph bar (mean) mpg, over(rep78) exclude0 ysc(r(10,30)) yla(10(5)30)

There is no need to cheat.

(A horrible graph, but that's a different issue.)

Nick

On Wed, Aug 31, 2011 at 4:45 PM, Andrew Hsiao <ahsiao@newvisions.org> wrote:
> I just studied the command yscale(range(x y)) in the document a bit more. It seems it is not used to define the range of axis to be shown on the graph. Rather it is used to EXPAND the range of the values in the data. So it does seem that Stata does not allow "cheating" to truncate the bottom part of the graph.
>
> It looks the solution is to find the aggregate of the variables (group means) and plot the values directly, using range(50 100) to define the bottom of the graph.
>
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Ronan Conroy
> Sent: Wednesday, August 31, 2011 11:21 AM
> To: statalist@hsphsun2.harvard.edu
> Subject: Re: st: How to start a bar graph with a minimum other than 0
>
> On 2011 Lún 31, at 15:24, Andrew Hsiao wrote:
>
>> I was trying to create a bar graph with a set of group means. The differences between the groups are not big numerically but I'd like to highlight the differences. I want to  plot the bars at a value other than 0 (not meant to mislead but to make the point of where they differ).
>
> Then try cheating.
>
> 1. Subtract a constant value from each mean (looking at your data, you might subtract 70)
>
> 2. On the plot, use bogus labels
>
> ylabel(0 "70" 5 "75" 10 "80" 15 "85 20 "90", angle(0))
>

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