结合Stata中的分位数回归图

时间:2016-06-03 16:15:37

标签: graph stata

我制作了多个分位数回归图,然后我想与用户编写的命令grc1leg结合使用(必须使用网络安装从网上安装,不能在SSC上使用)。该命令将图形与一个常见图例进行比较,并与默认图表组合进行比较。

但是,当我运行我的代码时,我总是遇到以下错误: Graph.graphs [1] .legend.draw_view.set_false:找不到类类型 R(4018);

如果我将其他图表与grc1leg结合使用

,则不会发生这种情况
*EXAMPLE:
*load data
sysuse auto, clear
*Qreg 1
qreg price weight length foreign, quantile (0.5) 
grqreg foreign,  ci ols olsci graphregion(color(white)) 
graph save "H:\graph1.gph", replace
*Qreg 2
qreg price weight length foreign, quantile (0.5) 
grqreg foreign,  ci ols olsci graphregion(color(white)) 
graph save "H:\graph2.gph", replace

/* Combining graphs */
*grc1leg is a user written command that needs to be installed first
net install grc1leg, replace

cd H:\
graph combine graph1.gph graph2.gph 
grc1leg graph1.gph graph2.gph 

我在之前的帖子中读到,如果用户在其间使用图形编辑器或图中出现了单词键,则grc1leg会感到不安。这里也不是这样的。

感谢您的任何建议!

干杯,

了Christoph

1 个答案:

答案 0 :(得分:3)

命令grc1leg在这里不起作用,因为grqreg已经在内部合并了图形。这样,所需的图类类型就会被破坏。

迫使前者起作用的唯一方法是在后者的源代码中更改以下几行:

*-> combine all graphs;

if ("`nodraw'"=="nodraw") {;
    grc1leg `graphlist', nodraw `options';
 // graph combine `graphlist', nodraw `options';
};

if ("`nodraw'"=="") {;
    grc1leg `graphlist', `options';
 // graph combine `graphlist', `options';
};

换句话说,您需要使用grc1leg来组合内部生成的单个图。

完成此操作并重新加载grqreg后,以下各项将按预期工作:

sysuse auto, clear

qreg price weight length foreign, quantile (0.5) 
grqreg foreign, ci ols olsci graphregion(color(white)) name(g1, replace) 

qreg price weight length foreign, quantile (0.5) 
grqreg foreign, ci ols olsci graphregion(color(white)) name(g2, replace) 

grc1leg g1 g2, name(g3, replace)

enter image description here