Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者: 李青塬 (广东工业大学)
邮箱: qingyuanli95@gmail.com
目录
如果您想在已经创建好的 twoway 类型图中添加标题或者追加其他数据点内容,addplot
命令将非常有用。其 可以在已经绘制好的 twoway 类型图片上追加内容。更重要的是,如果您没有原始制图数据,只有图形文件时,也可用该命令在图形文件上进行修改。参见连享会推文:
addplot [graphname] [numlist] : twoway_plots
addplot
命令有一些选项。其中,graphname 为需要进行追加内容的原始图片,可省略。如果省略,则使用当前的图片。numlist 用于设定要修改的子图编号。默认修改的是所有图片。如果进行分组绘图,仅需修改分组绘图后的子图编号。 norescaling 选项代表是否改变图形的尺度,以便保留轴标签和范围,通常情况下需要加入该选项,不改变图形的尺度。 legend 选项可选择是否显示图例,可根据情况自定义。具体内容可参见 Stata 的 help 文件:help addplot 。
改革开放以来,我国基础设施建设突飞猛进,有力地支持了我国经济社会持续健康发。站在历史发展的节点上,新一代基础设施建设同样被寄予厚望。互联网数据中心( IDC )是新一代基础设施的重要组成部分。本节选取互联网数据中心行业中一家上市公司用 addplot
命令来图示其市场表现(股票价格)及投资者情绪(换手率)。
命令如下:
clear //可以直接运行本部分命令即可设定好路径及文件夹创建
global root= "D:\addplot&fabplot" //在 D 盘自动创建 addplot&fabplot 文件夹
global raw_data= "$root\Raw_data"
global figures= "$root\Figures"
cap !mkdir "$raw_data" // cap 命令可让错误的代码继续运行
cap mkdir "$figures" //如果已经创建了这些文件夹,也可以运行
cap mkdir "$raw_data"
cap mkdir "$figures" //以上命令在每次打开 do 文件都可运行
cd "$raw_data"
set scheme s1color //统一设定绘图风格
ssc install cnar,replace //获取 A 股上市公司财务年报数据
ssc install cnstock,replace //获取 A 股上市公司名称
ssc install cnstrade,replace //获取 A 股上市公司历史行情数据
ssc install addplot,replace //安装本文介绍的命令
ssc install fabplot,replace //安装本文介绍的命令
命令如下:
clear
global id="600845"
cntrade $id
cap replace stknme="宝信软件" if stknme=="钢管股份"
global nn = stknme[1] //股票名称
use "$id.dta", clear
tsset date //设定为时间序列变量
gsort date
gen x1=_n
gen x2=_N
gen x3=x2-x1
keep if x3<120 //只保留最近 120 交易日数据
egen x4=max(clsprc)
gen x5=0 // 最近 120 交易日价格最大值
replace x5=1 if clsprc < x4
egen x6=min(clsprc)
gen x7=0 // 最近 120 交易日价格最小值
replace x7=1 if clsprc > x6
replace rit=rit*100 //转换为百分比的分子
replace rit=round(rit,.01) //保留两位小数
destring turnover,replace
twoway qfitci clsprc turnover,stdf title("最近120个交易日股票价格与换手率($nn)") || scatter clsprc turnover //二次拟合线和散点图
graph save price.gph,replace
结果如下:
图 1 是宝信软件最近 120 日交易日的股价及换手率的二次拟合线与散点图。总体上,二者具有一定的正相关性。
命令如下:
tsline clsprc , xlabel(,angle(60)) name(g1,replace)
tsline clsprc , xlabel(,angle(60)) name(g2,replace)
tsline clsprc , xlabel(,angle(60)) subtitle("$nn $id") //普通绘图
结果如下:
命令如下:
addplot: scatter clsprc date if x3<1, ms(o) mlabel(rit) legend(off) //追加最近一个交易日涨跌幅
addplot: scatter clsprc date if x5<1, ms(d) mlabel( rit) legend(off) //追加最近 120 日交易日最高价时的涨跌幅
addplot: scatter clsprc date if x7<1, ms(d) mlabel( rit) legend(off) //追加最近 120 日交易日最低价时的涨跌幅
graph export "$figures\\price_$id.emf", replace
结果如下:
命令如下:
addplot g1: , title("股票价格($nn $id)")
addplot g2: , title("股价时序图")
graph drop g1 g2 //删除图片
结果如下:
命令如下:
clear
graph drop Graph
graph use price.gph
addplot price: pcarrowi 50 1.7 64 1.85 "换手率最高点",legend(off) //中间数字代表箭头首尾坐标
addplot price: pcarrowi 80 0.7 73 1.0 "价格最高点",legend(off) //中间数字代表箭头首尾坐标
graph drop price
erase price.gph
结果如下:
fabplot
可以在生成分组的 twoway 类型图片的基础上追加前景图。fabplot
中的 fab 表示在每个面板数据背景图(background)上再加一个前景图(foreground),实现面板数据的图示化且可对图片进行调整。
fabplot command yvar xvar [if] [in] , by(byvar [, byopts]) [select(condition) front(twoway_command) frontopts(twoway_options) graph_options ]
fabplot
命令可以在分组图片的基础上进行绘制散点图或者其他类型的 twoway 图片类型。其中一部分观测值数据作为前景图数据,其他数据作为背景图数据。其有一些选项可以自定义。 by() 选项用于设定分组变量;select()选项可指定一个真假条件;front()选项可以指定一个 twoway 命令对观察值进行调整,例如 connect 。;frontopts( ) 选项可以指定 twoway 命令对每个子图的前景图进行调整 。具体内容可参见 Stata 的 help 文件:help fabplot。
被誉为“中国民间股神”的林园先生早在 2006 年的新浪博客中提出其选股的财务标准。包括利润总额、毛利率、预收款和净资产收益率等。其中,利润总额直接反应公司的赚钱能力,筛选的标准起码是一个小目标。净资产收益率高,说明企业盈利能力强,这个指标反应企业的效益如何。筛选的标准一般是大于 20% ,小于 10% 的免谈。毛利率可以反应企业经营的定价权。筛选的标准是毛利率大于 20% 的企业,同时需要稳定上升。预收款越多,说明产品供不应求,产品是香饽饽,可以反应产品的硬朗度。应收款太多的公司应该回避,可能产品销售不畅。
理论联系实践,基于上述筛选标准,本节利用 fabplot
命令对比图示互联网数据中心行业中 14 家上市公司最近 10 年的净资产收益率,从历史的角度检验其资产硬朗度。
命令如下:
*下载数据
global s 600845 300383 300017 600602 002335 603887 600797 300166 002197 300846 603881 300738 603912 300698
clear //循环下载所有公司的所有历史年报数据
foreach v of global s {
cnar `v'
}
openall //批量打开所有数据并合并成面板数据
save "stock_cnar.dta",replace
*获取股票名称
clear
cnstock all
merge 1:m stkcd using "stock_cnar.dta" //合并数据
keep if _merge==3
drop _merge
keep if year>2010 //保留最近 10 年的数据
gen 净资产收益率=归属于母公司所有者的净利润/归属母公司所有者权益(或股东权益)
fabplot line 净资产收益率 year, by(stknm) front(connect) frontopts(mc(red) lc(red))
addplot : , xline(2015, lp(dash)) yline(0.2, lp(dash) lc(blue)) norescaling
addplot : , xline(2015, lp(dash)) yline(0.1, lp(dash) lc(blue) ) norescaling
graph export "$figures\净资产收益率.emf", as(emf) name("净资产收益率") replace
结果如下:
本文介绍了两种在原图片上追加新内容的两种命令(addplot
与 fabplot
)。 addplot
可以对没有制图数据的图片进行内容追加;fabplot
可以对分组的图片进行内容追加。此外,还选取了两个有趣的金融实例进行介绍这两个命令。
最后附上本文的全部 do 文件,供大家参考。
clear
global root= "D:\addplot&fabplot" //在 D 盘自动创建 addplot&fabplot
global raw_data= "$root\Raw_data"
global figures= "$root\Figures"
cap !mkdir "$raw_data" // cap 命令可让错误的代码继续运行
cap mkdir "$figures" //如果已经创建了这些文件夹,也可以运行
cap mkdir "$raw_data"
cap mkdir "$figures" //以上命令在每次打开 do 文件都可运行
cd "$raw_data"
set scheme s1color //统一设定绘图风格
ssc install cnar,replace //获取 A 股上市公司财务年报数据
ssc install cnstock,replace //获取 A 股上市公司名称
ssc install cnstrade,replace //获取 A 股上市公司历史行情数据
ssc install addplot,replace //安装本文介绍的命令
ssc install fabplot,replace //安装本文介绍的命令
clear
global id="600845"
cntrade $id
cap replace stknme="宝信软件" if stknme=="钢管股份"
global nn = stknme[1] //股票名称
use "$id.dta", clear
tsset date //设定为时间序列变量
gsort date
gen x1=_n
gen x2=_N
gen x3=x2-x1
keep if x3<120 //只保留最近 120 交易日数据
egen x4=max(clsprc)
gen x5=0 // 120 交易日价格最大值
replace x5=1 if clsprc < x4
egen x6=min(clsprc)
gen x7=0 // 120 交易日价格最小值
replace x7=1 if clsprc > x6
replace rit=rit*100 //转换为百分比分子
replace rit=round(rit,.01) //保留两位小数
destring turnover,replace
twoway qfitci clsprc turnover,stdf title("最近120个交易日股票价格与换手率($nn)") || scatter clsprc turnover //二次拟合线和散点图
graph save price.gph,replace
tsline clsprc , xlabel(,angle(60)) name(g1,replace)
tsline clsprc , xlabel(,angle(60)) name(g2,replace)
tsline clsprc , xlabel(,angle(60)) subtitle("$nn $id") //普通绘图
addplot: scatter clsprc date if x3<1, ms(o) mlabel(rit) legend(off) //追加最近一个交易日涨跌幅
addplot: scatter clsprc date if x5<1, ms(d) mlabel( rit) legend(off) //追加最近 120 日交易日最高价时的涨跌幅
addplot: scatter clsprc date if x7<1, ms(d) mlabel( rit) legend(off) //追加最近 120 日交易日最低价时的涨跌幅
graph export "$figures\\price_$id.emf", replace
clear
graph drop Graph
graph use price.gph
addplot price: pcarrowi 50 1.7 64 1.85 "换手率最高点",legend(off) //中间数字代表箭头首尾坐标
addplot price: pcarrowi 80 0.7 73 1.0 "价格最高点",legend(off) //中间数字代表箭头首尾坐标
graph drop price
erase price.gph
*下载数据
global s 600845 300383 300017 600602 002335 603887 600797 300166 002197 300846 603881 300738 603912 300698
clear //循环下载所有公司的所有历史年报
foreach v of global s {
cnar `v'
}
openall //批量打开所有数据并合并成面板数据
save "stock_cnar.dta",replace
*获取股票名称
clear
cnstock all
merge 1:m stkcd using "stock_cnar.dta" //合并数据
keep if _merge==3
drop _merge
keep if year>2010 //保留最近 10 年的数据
gen 净资产收益率=归属于母公司所有者的净利润/归属母公司所有者权益(或股东权益)
fabplot line 净资产收益率 year, by(stknm) front(connect) frontopts(mc(red) lc(red))
addplot : , xline(2015, lp(dash)) yline(0.2, lp(dash) lc(blue)) norescaling
addplot : , xline(2015, lp(dash)) yline(0.1, lp(dash) lc(blue) ) norescaling
graph export "$figures\净资产收益率.emf", as(emf) name("净资产收益率") replace
Note:产生如下推文列表的命令为:
lianxh 绘图, m
安装最新版
lianxh
命令:ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh