Graph 组合分位数回归图

Graph 组合分位数回归图,graph,stata,Graph,Stata,我在Stata中生成多个分位数回归图,然后我想将其与社区贡献的命令grc1leg结合起来。与内置命令graph combine相比,此命令使用单个通用图例组合图形 但是,当我运行代码时,我总是遇到以下错误: Graph.graphs[1].legend.draw_view.set_false: class type not found r(4018); 如果将其他图形与grc1leg组合,则不会发生这种情况 下面是一个可复制的示例: *load data sysuse auto, clear

我在Stata中生成多个分位数回归图,然后我想将其与社区贡献的命令
grc1leg
结合起来。与内置命令
graph combine
相比,此命令使用单个通用图例组合图形

但是,当我运行代码时,我总是遇到以下错误:

Graph.graphs[1].legend.draw_view.set_false: class type not found
r(4018);
如果将其他图形与
grc1leg
组合,则不会发生这种情况

下面是一个可复制的示例:

*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 
注意,本例中的
grqreg
也是一个社区贡献的命令

对如何解决这个问题有什么建议吗


我在以前的帖子中读到,如果用户在这段时间使用了图形编辑器,或者如果图形中出现了单词key,那么
grc1leg
会感到不安。这里也不是这样。

命令
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)