This is the code to get Martin's graphs from Martin's data, but using
-reshape- instead.
clear
inp byte(a b)
2 3
4 5
7 2
3 6
9 10
end
gen plotvar=abs(rnormal())
gen id = _n
rename a c1
rename b c2
reshape long c, i(id)
label define _j 1 "a" 2 "b"
label val _j _j
graph pie plotvar, over(c) by(_j)
Nick
[email protected]
Martin Weiss
This at least gives you all the categories:
*************
clear*
inp byte(a b)
2 3
4 5
7 2
3 6
9 10
end
gen plotvar=abs(rnormal())
compress
list, noo
preserve
tempfile mytemp
//get unique values of a and b jointly
stack a b, into(c) clear
duplicates drop c, force
drop _stack
save `mytemp', replace
restore
//for a
preserve
keep a plotvar
rename a c
l
merge 1:1 c using "`mytemp'"
replace plotvar=0 if mi(plotvar)
graph pie plotvar, over(c) missing /*
*/ name(mygra, replace) tit(for a) /*
*/ nodraw
restore
//for b
preserve
keep b plotvar
rename b c
l
merge 1:1 c using "`mytemp'"
replace plotvar=0 if mi(plotvar)
graph pie plotvar, over(c) missing /*
*/ name(mygrb, replace) tit(for b) /*
*/ nodraw
restore
graph combine mygra mygrb
*************
Adam Collins
I expect there is something really simple that I am missing here... but
I am
new to Stata and it is doing my head in that I can't display all
categories
of a categorical variable on a pie chart... I am really getting no
where
with this problem. I would really appreciate some help.
I tried exploring ways of storing the "counts" from my categorical
variable
values in another variable, such as a matrix which would allow me to
store a
"zero count" as a "0" value. In searching for a solution, I came
accross
-fulltab- (from SSC), however it doesn't seem to work (it just displays
the
following "program error: code follows on the same line as open
brace").
Anyway, I am not even sure this is the best approach. Surely there is
something more straight forward?
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Adam Collins
Sent: mercredi 25 novembre 2009 17:39
To: [email protected]
Subject: st: display all categories on pie chart for categorical
variables
(with some zero values)
Hello,
I have several categorical variables that each possess the same list of
categories (value labels).
To enable easy comparison of the pie charts, I would like every category
to
exist on every chart (so that each category retains the same
colour/settings/legend position etc on each chart).
The problem is that some of the variables contain zero occurrences of
certain values (categories) and the standard 'over(varname)' option with
-graph pie- excludes categories with no occurrences. I have tried the
'allcategories' option, but since it applies to the 'over()' variable,
it
does not help.
Does anyone have any ideas? (by the way, since this is for a specific
set
of categorical variables, it is fine if the categories are 'hard coded',
then applied to each variable)
*
* 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/