Graph 图形组合每列和每行的标签

Graph 图形组合每列和每行的标签,graph,label,stata,Graph,Label,Stata,我正在使用graph combine组合多个绘图。如何标记每列和每行?在我的例子中,每一列用不同的变量表示,每一行使用不同的样本。我不希望每个图都有一个单独的标签,因为这会使它更加混乱 可以找到一个我想要的例子 我查看了文档,但没有找到解决方案。我确实在Statalist上找到了这个,但是那里的解决方案只为整个轴生成一个通用标题,而不是按列/行分开 是否可以按照文本(x y“text…”)的精神手动将文本添加到图形组合 以下是一个例子: sysuse uslifeexp, clear grap

我正在使用
graph combine
组合多个绘图。如何标记每列和每行?在我的例子中,每一列用不同的变量表示,每一行使用不同的样本。我不希望每个图都有一个单独的标签,因为这会使它更加混乱

可以找到一个我想要的例子

我查看了文档,但没有找到解决方案。我确实在Statalist上找到了这个,但是那里的解决方案只为整个轴生成一个通用标题,而不是按列/行分开

是否可以按照
文本(x y“text…”)的精神手动将文本添加到
图形组合

以下是一个例子:

sysuse uslifeexp, clear

graph drop _all
line le_male year if year<=1950, ytitle("") name(male1900)

line le_female year if year<=1950, ytitle("") name(female1900)

line le_male year if year>1950, ytitle("") name(male1951)

line le_female year if year>1950, ytitle("") name(female1951)

graph combine male1900 female1900 male1951 female1951, rows(2) cols(2)
sysuse uslifeexp,清除
图形删除所有
行le_男性年份,如1950年,ytitle(“”)名称(女性1951年)
图形组合male1900 female1900 male1951 female1951,行(2)列(2)
我想将其标记如下(行标签上有更多的空间,这样它就不会溢出到图形中;重要的是,标签不应该是单个小图形的一部分,而是放在由
graph combine
生成的组合图形集上):


以下内容对我很有用:

sysuse uslifeexp, clear

line le_male year if year<=1950, xlabel("") xtitle("") ytitle("1900-1950", ///
                                 orientation(horizontal)) title(MALE) name(male1900)

line le_female year if year<=1950, xlabel("") xtitle("") ytitle("") ///
                                   title(FEMALE) name(female1900)

line le_male year if year>1950, xlabel("") xtitle("") ytitle("1951-1999", ///
                                orientation(horizontal)) name(male1951)

line le_female year if year>1950, xlabel("") xtitle("") ytitle("") name(female1951)

graph combine male1900 female1900 male1951 female1951, rows(2) cols(2)
sysuse uslifeexp,清除
行le_male year if year1950,xlabel(“”)xtitle(“”)ytitle(“”)名称(female1951)
图形组合male1900 female1900 male1951 female1951,行(2)列(2)

以下内容对我很有用:

sysuse uslifeexp, clear

line le_male year if year<=1950, xlabel("") xtitle("") ytitle("1900-1950", ///
                                 orientation(horizontal)) title(MALE) name(male1900)

line le_female year if year<=1950, xlabel("") xtitle("") ytitle("") ///
                                   title(FEMALE) name(female1900)

line le_male year if year>1950, xlabel("") xtitle("") ytitle("1951-1999", ///
                                orientation(horizontal)) name(male1951)

line le_female year if year>1950, xlabel("") xtitle("") ytitle("") name(female1951)

graph combine male1900 female1900 male1951 female1951, rows(2) cols(2)
sysuse uslifeexp,清除
行le_male year if year1950,xlabel(“”)xtitle(“”)ytitle(“”)名称(female1951)
图形组合male1900 female1900 male1951 female1951,行(2)列(2)

另一种解决方案是重新构造数据,以便从包含
by()
选项的调用中显示图形。面板的顺序自然是可以选择的。拥有图形后,您可以编辑图形字幕等

sysuse uslifeexp, clear

keep le_male le_female year 

gen period = year > 1950
label define period 0 "1901-1950" 1 "1951-1999" 
label val period period 

reshape long le_ , i(year) j(gender) string 

egen panel = group(gender period), label 

label var le "Life expectancy (years)"

set scheme s1color 

line le_ year, by(panel, note("") xrescale imargin(medsmall)) ///
yla(, ang(h)) xlabel(#5) xtitle("") 


另请参见SSC中的
twby

另一种解决方案是重新构造数据,以便从包含
by()
选项的调用中显示图形。面板的顺序自然是可以选择的。拥有图形后,您可以编辑图形字幕等

sysuse uslifeexp, clear

keep le_male le_female year 

gen period = year > 1950
label define period 0 "1901-1950" 1 "1951-1999" 
label val period period 

reshape long le_ , i(year) j(gender) string 

egen panel = group(gender period), label 

label var le "Life expectancy (years)"

set scheme s1color 

line le_ year, by(panel, note("") xrescale imargin(medsmall)) ///
yla(, ang(h)) xlabel(#5) xtitle("") 


另请参见SSC的twby

谢谢你,尼克。这是一个很好的解决方案。谢谢你,尼克。这是一个很好的解决方案。