【发布时间】:2017-08-16 08:55:40
【问题描述】:
我试图通过为每个组显示不同的绘图样式来生成一个覆盖的 -xtline- 图,以区分男性和女性(或任意数量的多个组)。我选择将 xtline 图重铸为“连接”,并使用圆形标记显示男性,使用三角形标记显示女性。从this question on Statalist 获取线索,我生成了类似于下面的代码。当我尝试此解决方案时,Stata 会产生“选项太多”错误,考虑到大量独特的人,这可能是可以预测的。我知道this solution 使用组合图,但鉴于我的数据中有大量独特的个体,这也不实用。
对于这个问题是否存在更简单的解决方案? Stata 是否有能力像 -twoway- 图一样覆盖多个 -xtline- 图?
下面的代码使用来自 UCLA 优秀的 Stata 指南的公开数据显示了我的基本代码并重现了错误:
use http://www.ats.ucla.edu/stat/stata/examples/alda/data/alcohol1_pp, clear
xtset id age
gsort -male id
qui levelsof id if !male, loc(fidlevs)
qui levelsof id if male, loc(midlevs)
qui levelsof id, loc(alllevs)
tokenize `alllevs'
loc len_f : word count `fidlevs'
loc len_m : word count `midlevs'
loc len_all : word count `alllevs'
loc start_f = `len_all' - `len_f'
forval i = 1/`len_all' {
if `i' < `start_f' {
loc m_plot_opt "`m_plot_opt' plot`i'opts(recast(connected) mcolor(black) msize(medsmall) msymbol(circle) lcolor(black) lwidth(medthin) lpattern(solid))"
}
else if `i' >= `start_f' {
loc f_plot_opt "`f_plot_opt' plot`i'opts(recast(connected) mcolor(black) msize(medsmall) msymbol(triangle) lcolor(black) lwidth(medthin) lpattern(solid))"
}
}
di "xtline alcuse, legend(off) scheme(s1mono) overlay `m_plot_opt' `f_plot_opt'"
xtline alcuse, legend(off) scheme(s1mono) overlay `m_plot_opt' `f_plot_opt'
【问题讨论】:
标签: stata