朝花夕拾——如何输出内存中的矩阵与绘图
本文作者:余术玲
文字编辑:王碧琪
技术总编:闫续文
作为一款专业的统计软件,Stata不仅仅是数据处理和实证分析的利器,还拥有十分强大的绘图功能。在推文《朝花夕拾——putdocx批量输出变量观测值》中,我们介绍了如何输出内存中变量的观测值,而在实证研究的过程中,除了经过一系列处理后规整的数据,内存中的某个矩阵以及使用Stata完成的绘图也经常需要导入docx文件中以方便后续论文的排版。那么今天,我们就继续请putdocx命令来帮忙,将内存中的矩阵以及绘图输出到docx文件中。
一.putdocx table中的matrix()函数
当我们使用Stata进行实证分析的时候,许多关于数据的信息往往会被存储在内存的某个矩阵中。比如,我们调用auto数据,进行一个OLS回归,程序如下:
clear all
cap mkdir E:/putdocx
cd E:/putdocx
sysuse auto, clear
reg turn weight price length foreign mpg headroom trunk
return list
mat list r(table)
putdocx table tablename = matrix(matname) [, nformat(%fmt) rownames colnames table_options]
mat table = r(table)'
mat list table
! taskkill /F /IM WINWORD.EXE /T
putdocx begin, header(header1) pagenum(lower_roman,1) //生成名为header1的页眉,生成页码并设置格式为小写罗马数字、起始页码为1
putdocx paragraph, toheader(header1) halign(center) //生成一个段落,将该段落内容插入到名为header1的页眉中,居中对齐
putdocx pagenumber //该段落内容为使用pagenum()生成的小写罗马数字页码
putdocx paragraph, halign(center)
putdocx text ("OLS结果展示"), font("华文楷体",25,black) bold
putdocx table table1 = matrix(table), rownames colnames nformat(%8.2f) //保留矩阵“table”中行列标题,设置数字格式为总长度8,保留小数点后2位数字
putdocx table table1(1,.), bold shading(green) font(,,white)
forvalues row = 2(2)8 {
putdocx table table1(`row',.), shading(lightgreen)
}
putdocx table table1(.,1), bold shading(green) font(,,white)
putdocx save mytable.docx, replace
shellout mytable.docx
二.putdocx image命令
sysuse auto, clear
twoway(scatter mpg weight if foreign==0,mcolor(blue%60)) (scatter mpg weight if foreign==1,msymbol(t) mcolor(red%80)), note("美国1978年汽车数据") //foreign==0时,设置点的形状为默认形状即圆形,点的颜色为蓝色,不透明度60%,foreign==1时,设置点的形状为小三角形,点的颜色为红色,不透明度80%,为散点图添加注释“美国1978年汽车数据”
graph export scatter.png, replace //将内存中的绘图保存在缺省路径下,命名为scatter.png文件
putdocx begin
putdocx pagebreak
putdocx paragraph, halign(center)
putdocx text ("行驶里程与车重关系"), font("宋体",20,black) bold linebreak
putdocx image scatter.png, width(6) //导入图片并设置图像宽度为6英寸
putdocx save mytable.docx, append
shellout mytable.docx
对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!
往期推文推荐
万般进制千机变,Python一计乾坤定——利用Python来进行进制转换
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。