Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: RE: Formaatin the labels of the histogram-bars ?


From   Ernest Berkhout <ernestb@seo.fee.uva.nl>
To   statalist@hsphsun2.harvard.edu, <statalist@hsphsun2.harvard.edu>
Subject   Re: st: RE: Formaatin the labels of the histogram-bars ?
Date   Thu, 27 Nov 2003 17:48:07 +0100

At 16:37 27-11-2003, Nick Cox wrote:
I seem to remember a previous thread pointing
to the absence of -mlabformat()-.

I tried generating a _string_ variable to use under
-addlabopts()- in -histogram-, but got nowhere.

However, this convoluted work-around may be
of interest.

bysort rep78 : gen count = _N
count if rep78 < .
gen density = count / r(N)
gen sdensity = string(density, "%4.3f")
twoway bar density rep78, bstyle(histogram) ||
        scatter density rep78, ms(none) mlabel(sdensity) mlabpos(12)

OR

twoway histogram rep78, discrete ||
        scatter density rep78, ms(none) mlabel(sdensity) mlabpos(12)
Thanks Nick, that is a 'relatively straightforward workaround' which worked for me. Finally most solutions seem to come down on creating your own labels in some kind of variable and than switch to the twoway-concept. On the other hand, I don't see why in this particular case Stata did not include some 'mlabformat', to cure irregular labeling...

I just made a few small alterations to Nick's solution that might be of interest in case people want to label the percentages instead of fractions. Further, as I have 130.000 records I 'tagged' only one record within each category to speed up the second part (the labeling) of the graph. So full syntax would then become:

*** for percentages & large datasets: ***
bysort rep78 : gen count = _N
count if rep78 < .
gen density = 100*count / r(N) <-- changed -->
gen sdensity = string(density, "%4.1f")

egen tag = tag(rep78) <-- new -->
twoway histogram rep78, discrete percent || <-- changed -->
scatter density rep78 if tag, ms(none) mlabel(sdensity) mlabpos(12) <-- changed -->

OR, equivalent with the bars:

twoway bar density rep78 if tag, bstyle(histogram) || <-- changed -->
scatter density rep78 if tag, ms(none) mlabel(sdensity) mlabpos(12) <-- changed -->


Note that in the histogram-option the histogram has to use all records to calculate the right percentages, so I did not leave my tag on that line...



Ernest Berkhout
SEO Amsterdam Economics
University of Amsterdam

Room 3.08
Roetersstraat 29
1018 WB Amsterdam
The Netherlands

tel.:+ 31 20 525 1657
fax:+ 31 20 525 1686
http://www.seo.nl
===========================
A statistician: someone who insists
on being certain about uncertainty
===========================

*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/




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