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

st: Re: Bar labels for stacked bar chart (Oct. 2003)


From   Friedrich Huebler <huebler@rocketmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   st: Re: Bar labels for stacked bar chart (Oct. 2003)
Date   Thu, 22 Apr 2004 10:46:44 -0700 (PDT)

I received a couple of messages off-list regarding a query that I
posted in October 2003. I had tried to create a stacked bar chart
with one label per bar, indicating total height. I received no
responses and never posted my solution, which you will find below. My
original message is in the archive:

http://www.stata.com/statalist/archive/2003-10/msg00127.html

As an example, the data below shows the share of the population in
countries A and B that speaks at least one or two foreign languages.

country   onelang   twolang
      A        30        10
      B        20         5

A stacked bar graph shows that in country A 40 percent of the
population speak at least one foreign language. In country B 25
percent of the population speak at least one foreign language.

. graph bar onelang twolang, over(country) stack blabel(total)

If we want only one label indicating the total height we have to
transform the data so that a twoway bar plot can be drawn. The labels
are added with a twoway scatter plot.

. gen total = onelang + twolang
. gen barnumber = 1
. replace barnumber = 2 if country=="B"
. graph twoway scatter total barnumber, msymbol(none) mlabel(total)
mlabpos(12) || bar total barnumber || bar onelang barnumber,
yscale(r(0 45)) ylabel(0(10)40) xtitle("") xlabel(1 "Country A" 2
"Country B") legend(col(2) label(2 "Two languages") label(3 "One
language") order(3 2))

The commands can be expanded to accommodate more than two categories
(e.g., onelang, twolang, and threelang; or countries A, B, and C).
Notice that the graph has to be built up from the back, with the
tallest bars being drawn first in the -bar ... || bar ...- sequence.

For those who read my original message, the -blabel(total)- option
used to have a bug that yielded wrong values in the labels. This bug
has been fixed.

Friedrich Huebler


	
		
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25˘
http://photos.yahoo.com/ph/print_splash
*
*   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