首页 > 解决方案 > 图表组合每列和每行的标签

问题描述

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

我想要的一个例子可以在这里找到。

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

是否可以本着text(x y "text...")to的精神手动添加文本graph combine

这是一个例子:

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)

我想将它标记如下(在行标签上有更多空间,这样它就不会溢出到图中;重要的是,标签不应该是单个小图的一部分,而是放在生成的组合图集上graph combine) :

在此处输入图像描述

标签: graphlabelstata

解决方案


另一种解决方案是重组数据,以便图表从包含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("") 

在此处输入图像描述

另见twbySSC。


推荐阅读