stata作图有很多很多很多命令和可设置的地方,最大的缺点是它没有excel那样的交互界面,只能靠自己一点点摸索。但是stata也是可以画出和excel媲美的图的,一方面可以使用作图界面的【Graph Editor】,算是一个半交互界面,可以对图表的各种选项进行调整,但相比于excel还是有很大局限性,缺点是不方便复制操作;另一方面就是使用代码命令作图,这就需要我们必须对有哪些代码可以使用有一个系统的了解。
-
最近几天在连续使用stata作各种图,很多命令代码都是自己翻命令说明和各种搜索信息才找到的,为方便自己日后再使用,也方便更多同学,现开帖记录如下~
-------
1.授人以鱼不如授人以渔,首先从如何自己探索各种作图命令开始:
help twoway_options //twoway画图命令可以设置的所有选项的汇总
help added_line_options //添加辅助线的选项
help added_text_options //添加文本的选项
help axis_options //坐标轴设置
help title_options //各种标题设置
help legend_options //图例设置
help scale(#) //大小范围设置
help region_options //作图区域大小设置
help scheme(schemename) //设置图表主题样式
以上是一些主要的设置选项的命令,有些选项的下级还有更详细具体分类,比如:
help axis_options //坐标轴设置
help axis_label_options //坐标轴标签设置
help axis_title_options //坐标轴标题设置
help axis_scale_options //坐标轴范围设置
help axis_choice_options //坐标轴选择设置
种种作图命令都藏在这些help的说明文件中,大家可以自己探索。这篇整理笔记后续内容其实也只是说明文件的搬运工,希望大家都能善用help命令,不做伸手党~
-------
*附上一些不错的学习资源:
Stata基础操作: 绘图概述(一):本论坛内的一篇帖子,对基础的设置可选项列举的十分详尽,比如可选颜色,可选点的样式,可选线的样式等。
https://www.surveydesign.com.au/tipsgraphs.html:几乎画了所有stata可以画的图,并配有命令。但是没有对每一个命令详细阐释,不过可以供参考~
https://www.jianshu.com/p/6e3ba1d15a24:详尽总结了直方图的调整美化命令。
-------
2.几个数据整理的基础命令
数据整理的命令范围就更大了,这里仅记录一下我最近做整理金融交易数据时用到的小命令
-------
2.1生成日期型时间变量
直接下载得到的数据导入stata后经常是文本型的(如图date变量),我们如何让stata识别它变成日期型时间变量(如图t1和t2变量)呢?
g nt=date(日期变量,"YMD")
//stata识别时间变量后,会生成stata内部一套序数表示时间,我们通常需要在此基础再调整格式
-------
g t1=date(日期变量,"YMD")
form t1 %td
//%td格式就是日期型变量的默认格式
//本命令显示为“17nov2014”表示2014年11月17日
-------
g t2=date(日期变量,"YMD")
form t2 %tdCCYY-NN-DD
//在%td后再设置年月日的显示格式,CCYY表示年,NN表示月,DD表示日
//本命令显示为“2014-11-17”表示2014年11月17日
-------
tsset t
//设置t为时间序列的时间变量
-------
2.2将不同时间序列按日期匹配变量
处理金融时间序列时常遇到的一个问题是交易日不匹配,哪天开市哪天不开市对于各个变量都可能不一样。
处理这个问题的做法是:统一不同时间序列的数据文件中的时间变量名,然后使用merge命令将不同数据文件整合。
merge m:1 t using "数据.dta" //将“数据.dta”按t变量整合至当前数据中
对于这个命令的具体阐释请大家自行help merge
-------
2.3用文本标记坐标轴
以我的案例为例,我需要对持仓前10支股票画图,并使他们按顺序标记在x坐标轴上:
label define var1 1"公司名称" 2"..." 3"..." 4"..." 5"..." 6"..." 7"..." 8"..." 9"..." 10"...", replace //var1是一个顺序1至10的变量,对他做标签
label values var2 var1 //var2是对应的文本标签变量
tw (bar var3 var2, xlabel(1(1)10, valuelabel)) //对不同var2画var3的柱形图并以标签标记
-------
3.美化图形命令
stata用的好,所有图都可以在stata里直接画好,美观度不亚于excel的哦~
-------
3.1修改颜色
首先放上各种可选项,图片来自Stata基础操作: 绘图概述(一)
修改颜色时,可以参考上面这张图片中的默认颜色,并且在此基础上调整透明度、强度等等。
也可以直接输入RGB值、CMYK值或HSV值:
color("# # #") //RGB value; white = "255 255 255" //使用RGB值选择颜色
color("# # # #") //CMYK value; yellow = "0 0 255 0" //使用CMYK值选择颜色
color("hsv # # #") //HSV value; white = "hsv 255 255 255" //使用HSV值选择颜色
-------
help colorstyle //关于颜色设置的命令说明
-------
//调整透明度
color(green%50) //设置颜色为50%透明度的绿色
color("0 255 0%50") //设置颜色为RGB值为0,255,0且透明度50%
color(%30) //设置当前颜色透明度为30%
-------
//调整颜色强度
color(green*.8) //设置颜色为强度0.8倍的绿色
color(purple*1.5) //设置颜色为强度1.5倍的紫色
color("0 255 255*1.2") //设置颜色为RGB值0,255,255且1.2倍强度
color("hsv 240 1 1*.5") //设置颜色为HSV值240,1,1且0.5倍强度
-------
3.1.1修改图形底色
我相信很多人和我以前一样,觉得stata画图的最大标志就是他的浅灰蓝色外框,一直以为这个是不能改的,直到打开了新世界的大门......
stata默认的浅灰蓝色外围颜色叫“light bluish-gray”,修改这部分颜色的命令是:
tw ...... , graphregion(color(white)) //修改外围区域颜色为白色
tw ...... , graphregion(fcolor(orange)) //修改外围区域填充颜色为橘色
*color和fcolor的区别在于“margin”(margin的宽窄亦可调节,见3.2.2),color包括margin部分,fcolor不包括margin部分。
类似地,修改内部作图区域颜色的命令:
tw ...... , plotregion(color(white)) //修改作图区域颜色为白色
tw ...... , plotregion(fcolor(black)) //修改作图区域填充颜色为黑色
-------
3.1.2修改所作图的颜色
tw (line var1 t, color(black)) //修改line图线条颜色为黑色
tw (scatter var1 t, mcolor(orange)) //修scatter图标记颜色为橘色
tw (line var1 t, color(black)) (connected var2 t, lcolor(red) mcolor(yellow)) //分别修改line图var1线条颜色为黑色,修改connected图var2标记颜色为黄色、连线颜色为红色
-------
3.2修改图形大小和比例
help regions_options //关于区域和图形大小等设置的命令说明
-------
3.2.1修改整个作图区域的大小和比例
stata默认的图形比例是横向5.5inch纵向4inch,也就是5.5比4的一个矮胖的比例
对此我们可以自行修改设置:
tw ...... , xsize(10) //修改x方向为10英寸(y方向仍为默认4英寸)
tw ...... , ysize(6) //修改y方向为6英寸(x方向仍为默认5.5英寸)
tw ...... , xsize(10) ysize(6) //修改x方向为10英寸,y方向为6英寸
-------
3.2.2修改作图区域边际大小
help marginstyle //关于边际设置的命令说明
tw ...... , graphregion(margin(zero)) //设置外围区域边际为0
tw ...... , plotregion(margin(tiny)) //设置内部区域边际为极小
tw ...... , plotregion(margin(# # # #)) //设置内部区域边际左、右、下、上的具体值
-------
一楼有字数限制,后续整理更新在回帖中~