2017-05-08 30 views
0

我无法完全理解如何将变量的标题值标签插入到图形中。为图形标题插入变量值标签

例如,在sysuse auto中,变量foreign取值0或1,其中0标记为“国内”,1标记为“外部”。

在下面的代码片段,我要绘制的平均价格为可变foreign的每个类别使用循环:

sysuse auto, clear 
forvalues i=0/1{ 
    local t = foreign[`i'] 
    graph bar (mean) price if foreign == `i', /// 
     over(rep78, sort(price) descending) asyvars /// 
     title("`t'") name(p_`i', replace) nodraw 
    local graphs `graphs' p_`i' 
} 
gr combine `graphs' 

,但它甚至没有在标题中正确显示的类别值。

我在做什么错?

回答

2

您的代码

local t = foreign[`i'] 

设置本地宏t到第一可变foreign的值中观察0,然后在obseration 1:这些将分别缺失和0。

你想要的是对应 0和1,您可以用

local t : label (foreign) `i' 

交换到你的代码此获取和您的图表将被标记为国内外值标签,分别。

替换命令的语法可能不熟悉;宏“扩展功能”在help extended_fcn中描述。

0

注意,任一这些命令

sysuse auto, clear 

graph bar (mean) price , /// 
over(rep78, sort(price) descending) asyvars over(foreign) 

graph bar (mean) price , /// 
over(rep78, sort(price) descending) asyvars by(foreign) 

使用自动值标签和直接产生一个组合的曲线图。这可能不是主要问题,但原始代码并不是一个很好的解决方案。

+0

当然,我只是想学习如何为图形添加价值标签,这是我想出的第一个例子。 – invictus