为图标题

时间:2017-05-08 23:52:14

标签: stata

我无法完全掌握如何将标题的变量值标签插入图表。

例如,在sysuse auto中,变量foreign的值为0或1,其中0表示“Domestic”,1表示“Foreign”。

在下面的代码段中,我想使用循环绘制变量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 个答案:

答案 0 :(得分:2)

您的代码

local t = foreign[`i']

首先在观察0中将局部宏t设置为变量foreign的值,然后在观察1中设置:这些将分别丢失和0。

你想要的是与 0和1相对应的值标签,你可以用

获得
local t : label (foreign) `i'

将其交换到您的代码中,您的图表将分别标记为国内和国外。

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

答案 1 :(得分:0)

请注意这些graph命令之一

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) 

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