STATA作钉子图和哑铃图

2022-05-19  本文已影响0人  冬之心

缘起

钉子图和哑铃图本质是一样的,都是每个对象包含两个端点,将两个端点连线。区别只是端点数据形式的差异,使得钉子图所有对象一般有一端是对齐的,而哑铃图则不用;钉子图要么垂直要么水平,而哑铃图不用。这两种图适用于制作:

R的ggplot2包中函数geom_point()+geom_line(),或者ggplot2+ggalt包中函数geom_dumbbell(),可以制作这类图。

STATA常规的作图命令,twoway line/scatter等,无法制作钉子图和哑铃图。需要专门的命令。这里介绍的是专门作这类图的命令。

一、spike系列命令

spike

twoway spike yvar xvar [if] [in] [, options]

选项 说明
vertical 垂直线,默认值
horizontal 水平线
base(#) 起始值,默认为0

sysuse sp500, clear
list date close change in 1/5
twoway spike change date
twoway spike change date, horizon
twoway line close date || spike change date

rspike -- Range plot with spikes

twoway rspike y1var y2var xvar [if] [in] [, options]

选项 说明
vertical 垂直钉子图,默认值
horizontal 水平钉子图

sysuse sp500, clear
twoway rspike high low date

pcspike -- Paired-coordinate plot with spikes

twoway pcspike y1var x1var y2var x2var [if] [in] [, options]


sysuse nlswide1, clear
list occ wage68 ttl_exp68 wage88 ttl_exp88
twoway pcspike wage68 ttl_exp68 wage88 ttl_exp88

twoway pcspike wage68 ttl_exp68 wage88 ttl_exp88      ||
       scatter wage68 ttl_exp68, msym(O)              ||
       scatter wage88 ttl_exp88, msym(O) pstyle(p4)
       mlabel(occ) xscale(range(17))
       title("Change in US Women's Experience and Earnings")
       subtitle("By Occupation -- 1968 to 1988")
       ytitle(Earnings) xtitle(Total experience)
       note("Source: National Longitudinal Survey of Young Women")
       legend(order(2 "1968" 3 "1988"))


二、带帽的钉子图:cap系列命令

rcap -- Range plot with capped spikes

twoway rcap y1var y2var xvar [if] [in] [, options]


sysuse sp500, clear
twoway rcap high low date

rcapsym -- Range plot with spikes capped with marker symbols

twoway rcapsym y1var y2var xvar [if] [in] [, options]

选项 说明
vertical 垂直钉子图,默认值
horizontal 水平钉子图
marker_options 标记选项:形状、颜色、大小等
marker_label_options 标签的选项:指定标签变量、位置等

sysuse sp500, clear
twoway rcapsym high low date

pccapsym -- Paired-coordinate plot with spikes and marker symbols

twoway pccapsym y1var x1var y2var x2var [if] [in] [, options]

sysuse nlswide1, clear
list occ wage68 ttl_exp68 wage88 ttl_exp88
twoway pccapsym wage68 ttl_exp68 wage88 ttl_exp88
twoway pccapsym wage68 ttl_exp68 wage88 ttl_exp88, headlabel mlabel(occ)

三、计数钉子图:spikeplot

spikeplot varname [if] [in] [weight] [, options]

选项 说明
round(#) 带宽
fraction 占总体的百分比
root 计数的平方根
spike_options 钉子图的呈现样式选项
addplot(plot) 添加其它plot
webuse ghanaage
spikeplot age [fw=pop], ytitle("Population in 1000s") xlab(0(10)90) xmtick(5(10)85)

spikeplot age [fw=pop], fraction
spikeplot age [fw=pop], round(10)  #10岁一组

四、图中添加水平线或垂直线

上一篇下一篇

猜你喜欢

热点阅读