Dear Stata-Listers, I have created a stacked bar chart with 20 variables and now I want to display only the top five and low five (determined by the mean). However, after filtering out the cases with a mean below or above 3, I still see the old (incorrect) labels.
Here is my code: (dataex below)
clonevar ta1= f21_SQ001
clonevar ta2= f21_SQ002
clonevar ta3= f21_SQ003
clonevar ta4= f21_SQ004
clonevar ta5= f21_SQ005
clonevar ta6= f21_SQ006
clonevar ta7= f21_SQ007
clonevar ta8= f21_SQ008
clonevar ta9= f21_SQ009
clonevar ta10= f21_SQ010
clonevar ta11= f21_SQ011
clonevar ta12= f21_SQ012
clonevar ta13= f21_SQ013
clonevar ta14= f21_SQ014
clonevar ta15= f21_SQ015
clonevar ta16= f21_SQ016
clonevar ta17= f21_SQ017
clonevar ta18= f21_SQ018
clonevar ta19= f21_SQ019
clonevar ta20= f21_SQ020
local ta1: var lab ta1
dis "`ta1`"
foreach var of varlist _all {
local `var`: var lab `var`
}
gen id2 = _n
reshape long ta, i(id2)
rename ta score
fre score
label define _j ///
1 "Väter" ///
2 "Mütter" ///
3 "Alleinerziehende" ///
4 "Senioren/Großeltern" ///
5 "Kinder und Jugendliche (bis 18 Jahre) ohne direkte Beteiligung der Eltern" ///
6 "Junge Frauen (18 bis 27 Jahre)" ///
7 "Junge Männer (18 bis 27 Jahre)" ///
8 "Werdende Eltern" ///
9 "Paare/Familien mit Kindern unter 3 Jahren" ///
10 "Paare/Familien mit Vorschulkindern (3 Jahre bis zum Schuleintritt)" ///
11 "Paare/Familien mit Schulkindern" ///
12 "Paare/Familien mit Kindern in der Pubertät" ///
13 "Eltern/Paare/Familien vor/in nach Trennung und Scheidung (z. B. hochstrittige Fälle)" ///
14 "Menschen mit psychischen Erkrankungen im Allgemeinen" ///
15 "Menschen mit Migrationshintergrund" ///
16 "Menschen mit unmittelbaren Fluchterfahrungen" ///
17 "Queere Menschen im Allgemeinen" ///
18 "Regenbogenfamilien u. -paare" ///
19 "Menschen im Transferbezug (z.B. SGB II, Kinderzuschlag)" ///
20 "Menschen im Kontext von sexualisierten Gewalterfahrungen" , modify
label values _j _j
splitvallabels _j , length(32)
graph set window fontface "Franklin Gothik Book"
graph hbar (percent) , over(score) over(_j, sort(1) descending relabel(`r(relabel)')) asyvars percentage stack ///
blabel(bar, pos(center) size(2.7) color(white) format(%2.0f)) ytitle("") ylabel( 0 "0%" 20 "20%" 40 "40%" 60 "60%" 80 "80%" 100 "100%") ///
legend(pos(top) cols(3) size(2.5)) xsize(12) ysize(20) note("Quelle: XXX, eigene Berechnungen, n= 66.", color("63 70 74"))
reshape wide ta, i(id2)
foreach var of varlist (ta*) {
egen mean_`var'= mean(`var')
}
reshape long ta mean_ta, i(id2)
* Dataex
----------------------- copy starting from the next line -----------------------
------------------ copy up to and including the previous line ------------------
Here is my code: (dataex below)
- Preparation for the chart
clonevar ta1= f21_SQ001
clonevar ta2= f21_SQ002
clonevar ta3= f21_SQ003
clonevar ta4= f21_SQ004
clonevar ta5= f21_SQ005
clonevar ta6= f21_SQ006
clonevar ta7= f21_SQ007
clonevar ta8= f21_SQ008
clonevar ta9= f21_SQ009
clonevar ta10= f21_SQ010
clonevar ta11= f21_SQ011
clonevar ta12= f21_SQ012
clonevar ta13= f21_SQ013
clonevar ta14= f21_SQ014
clonevar ta15= f21_SQ015
clonevar ta16= f21_SQ016
clonevar ta17= f21_SQ017
clonevar ta18= f21_SQ018
clonevar ta19= f21_SQ019
clonevar ta20= f21_SQ020
local ta1: var lab ta1
dis "`ta1`"
foreach var of varlist _all {
local `var`: var lab `var`
}
gen id2 = _n
reshape long ta, i(id2)
rename ta score
fre score
label define _j ///
1 "Väter" ///
2 "Mütter" ///
3 "Alleinerziehende" ///
4 "Senioren/Großeltern" ///
5 "Kinder und Jugendliche (bis 18 Jahre) ohne direkte Beteiligung der Eltern" ///
6 "Junge Frauen (18 bis 27 Jahre)" ///
7 "Junge Männer (18 bis 27 Jahre)" ///
8 "Werdende Eltern" ///
9 "Paare/Familien mit Kindern unter 3 Jahren" ///
10 "Paare/Familien mit Vorschulkindern (3 Jahre bis zum Schuleintritt)" ///
11 "Paare/Familien mit Schulkindern" ///
12 "Paare/Familien mit Kindern in der Pubertät" ///
13 "Eltern/Paare/Familien vor/in nach Trennung und Scheidung (z. B. hochstrittige Fälle)" ///
14 "Menschen mit psychischen Erkrankungen im Allgemeinen" ///
15 "Menschen mit Migrationshintergrund" ///
16 "Menschen mit unmittelbaren Fluchterfahrungen" ///
17 "Queere Menschen im Allgemeinen" ///
18 "Regenbogenfamilien u. -paare" ///
19 "Menschen im Transferbezug (z.B. SGB II, Kinderzuschlag)" ///
20 "Menschen im Kontext von sexualisierten Gewalterfahrungen" , modify
label values _j _j
splitvallabels _j , length(32)
graph set window fontface "Franklin Gothik Book"
graph hbar (percent) , over(score) over(_j, sort(1) descending relabel(`r(relabel)')) asyvars percentage stack ///
blabel(bar, pos(center) size(2.7) color(white) format(%2.0f)) ytitle("") ylabel( 0 "0%" 20 "20%" 40 "40%" 60 "60%" 80 "80%" 100 "100%") ///
legend(pos(top) cols(3) size(2.5)) xsize(12) ysize(20) note("Quelle: XXX, eigene Berechnungen, n= 66.", color("63 70 74"))
reshape wide ta, i(id2)
foreach var of varlist (ta*) {
egen mean_`var'= mean(`var')
}
reshape long ta mean_ta, i(id2)
* Dataex
----------------------- copy starting from the next line -----------------------
Code:
* Example generated by -dataex-. For more info, type help dataex clear input byte(score _j) float id2 3 1 1 3 2 1 3 3 1 6 4 1 3 5 1 3 6 1 3 7 1 4 8 1 . 9 1 3 10 1 3 11 1 3 12 1 5 13 1 5 14 1 5 15 1 5 16 1 6 17 1 6 18 1 6 19 1 5 20 1 1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 6 2 1 7 2 6 8 2 1 9 2 1 10 2 1 11 2 1 12 2 1 13 2 4 14 2 4 15 2 4 16 2 6 17 2 6 18 2 . 19 2 4 20 2 3 1 3 3 2 3 3 3 3 5 4 3 3 5 3 3 6 3 3 7 3 3 8 3 3 9 3 3 10 3 3 11 3 5 12 3 5 13 3 5 14 3 5 15 3 5 16 3 5 17 3 5 18 3 3 19 3 5 20 3 1 1 4 1 2 4 1 3 4 4 4 4 1 5 4 1 6 4 1 7 4 1 8 4 1 9 4 2 10 4 2 11 4 2 12 4 1 13 4 3 14 4 4 15 4 4 16 4 1 17 4 6 18 4 4 19 4 4 20 4 3 1 5 3 2 5 3 3 5 5 4 5 5 5 5 6 6 5 6 7 5 6 8 5 6 9 5 6 10 5 3 11 5 6 12 5 6 13 5 6 14 5 4 15 5 6 16 5 6 17 5 6 18 5 6 19 5 6 20 5 end label values score labels40 label def labels40 1 "gut", modify label def labels40 2 "eher gut", modify label def labels40 3 "teils/teils", modify label def labels40 4 "eher schlecht", modify label def labels40 5 "schlecht", modify label def labels40 6 "kann ich nicht beurteilen / nicht meine Zielgruppe", modify label values _j _j label def _j 1 "Väter", modify label def _j 2 "Mütter", modify label def _j 3 "Alleinerziehende", modify label def _j 4 "Senioren/Großeltern", modify label def _j 5 "Kinder und Jugendliche (bis 18 Jahre) ohne direkte Beteiligung der Eltern", modify label def _j 6 "Junge Frauen (18 bis 27 Jahre)", modify label def _j 7 "Junge Männer (18 bis 27 Jahre)", modify label def _j 8 "Werdende Eltern", modify label def _j 9 "Paare/Familien mit Kindern unter 3 Jahren", modify label def _j 10 "Paare/Familien mit Vorschulkindern (3 Jahre bis zum Schuleintritt)", modify label def _j 11 "Paare/Familien mit Schulkindern", modify label def _j 12 "Paare/Familien mit Kindern in der Pubertät", modify label def _j 13 "Eltern/Paare/Familien vor/in nach Trennung und Scheidung (z. B. hochstrittige Fälle)", modify label def _j 14 "Menschen mit psychischen Erkrankungen im Allgemeinen", modify label def _j 15 "Menschen mit Migrationshintergrund", modify label def _j 16 "Menschen mit unmittelbaren Fluchterfahrungen", modify label def _j 17 "Queere Menschen im Allgemeinen", modify label def _j 18 "Regenbogenfamilien u. -paare", modify label def _j 19 "Menschen im Transferbezug (z.B. SGB II, Kinderzuschlag)", modify label def _j 20 "Menschen im Kontext von sexualisierten Gewalterfahrungen", modify