Stata二维图的坐标轴选择

2018-01-09 李金洋 爬虫俱乐部 爬虫俱乐部


 有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

在Stata中,我们经常使用graph twoway命令绘制散点图、折线图、条形图等二维图。如果我们在绘图时,需要使用多个坐标轴,这时应该怎么办呢??→_→这时就需要用到坐标轴的选项(axis_choice_options)啦!

该选项的基本语法如下:

yaxis(# [#...]), 1≤ # ≤ 9

xaxis(# [#...]), 1≤ # ≤ 9

默认(缺省)情况下,Stata指定一个纵坐标轴和一个横坐标轴,即yaxis(1)xaxis(1)。Stata最多允许在横纵两个方向各设置9个坐标轴。例如:yaxis(1 2),此时,纵轴的选择默认为先左后右,即第一个纵轴在图形左侧,第二个纵轴在图形右侧;xaxis(1 2),此时,横轴的选择默认为先下后上,即第一个横轴在图形下侧,第二个横轴在图形上侧;当设置的纵坐标轴(横坐标轴)不少于3个时,坐标轴会摆放在二维图的左侧(下侧),我们也可以通过命令来改变坐标轴的位置。

另外,为了使绘制的图形更美观,我们还可以通过绘图的其它选项来设置指定坐标轴的标题、标签、刻度和取值范围,更改图形或文字的位置、颜色、形状、大小等。更多关于坐标轴的详尽用法,请读者使用Stata中的help文件来进一步学习(help axis_choice_options)。

接下来,我们通过构造一个简单的数据集来介绍这一选项的使用方法。在绘图之前,我们先构造一个数据集,生成绘图所用的变量。

clear

set obs 55

set seed 123456789

gen time = _n

format time %td //日数据

gen week = week(time) //周标识

gen AR = ln(1+runiform()) //超额收益率(日)

sort time

gen CAR = sum(AR) //累计超额收益率(日)

bysort week: egen meanAR = mean(AR) //平均超额收益率(周)

gen meanp_AR = meanAR/meanAR[_n-1] - 1 //平均超额收益率变动率(周)

首先,我们使用单个y轴生成AR和CAR的折线图。当只有1个y轴时,选项yaxis(1)可以省略,x轴同理。

twoway (line CAR time, lwidth(medthick)) (line AR time, lwidth(medthick)) //使用一个y轴 

我们发现,当AR和CAR 使用同一y轴时,由于AR的取值范围远小于CAR,因此AR的变化在图中并不明显。

接下来,我们使用选项yaxis(n)设置双y轴,生成AR和CAR的折线图。其中,yaxis(1)指AR变量使用第一个y轴,yaxis(2)指CAR变量使用第二个y轴,第一个坐标轴选项yaxis(1)可以省略[l1] ,Stata最多允许在同一方向设置9个坐标轴。

twoway (line AR time,yaxis(1) lcolor(ebblue)) (line CAR time,yaxis(2) lcolor(cranberry)) //双y轴

此时,我们能明显看出AR和CAR的变化趋势。AR是日超额收益率,变化幅度较大;CAR是累计超额收益率,呈上升趋势。

我们可以使用yaxis(n)xaxis(n)选 项设置2个y轴和2个x轴,生成AR的散点图、CAR的折线图和meanAR的条形图。此时,由于变量取值范围不同,AR和meanAR可以使用第一个y 轴(0-0.8),CAR使用第二个y轴(0-25);由于时间单位的不同,AR和CAR可以使用第一个x轴(日),meanAR使用第二个x轴(周)。 为了输出结果美观,我们使用对图形的颜色、宽度、大小等进行了调整,这些调整可以通过命令选项写出,也可以直接在生成的图形中修改。

twoway (bar meanAR week, xaxis(1) yaxis(1) color(ltblue) barw(0.6) xlabel(1(1)8)) (scatter AR time, c(l) ytitle(AR) xaxis(2) yaxis(1) mcolor(teal) msize(small) lcolor(teal)) (line CAR time, xaxis(2) yaxis(2) color(teal) lwidth(medthick)) //双x轴双y轴

生成AR和CAR的折线图,meanp_AR的条形图。此时,由于变量取值范围各不相同,AR, CAR和meanp_AR需要分别使用一个y轴;由于时间单位的不同,meanp_AR使用第一个x轴(周),CAR和AR使用第二个x轴(日)

twoway (bar meanp_AR week, xaxis(1) yaxis(1) barw(0.5) color(ltblue) xlabel(1(1)8, axis(1))) (line AR time, xaxis(2) yaxis(2) lcolor(teal)) (line CAR time,xaxis(2) yaxis(3) lcolor(teal)) //双x轴三y轴

此时,我们发现,在Stata绘图中,当设置的纵坐标轴(横坐标轴)不少于3个时,纵坐标轴(横坐标轴)会堆积在图形左侧(下侧)。如果小伙伴们想要自行选择坐标轴出现的位置,可以使用选项yscale(alt)xscale(alt),将指定的坐标轴移到另一侧。

例如,我们希望把条形图的纵轴移到右侧显示,使图形更加美观,我们可以使用yscale(alt)选项实现这一操作,命令如下:

twoway (bar meanp_AR week,xaxis(1) yaxis(1) yscale(alt) barw(0.5) color(ltblue) xlabel(1(1)8, axis(1))) (line AR time, xaxis(2) yaxis(2) lcolor(teal)) (line CAR time,xaxis(2) yaxis(3) lcolor(teal))  

此时,我们使用yscale(alt)选项将条形图的纵轴移到右侧显示,并使用yline(0)选项为条形图增加了一条y=0的水平参考线,增加了图形的可读性。

通过上述坐标轴选择例子的演示,小伙伴们有没有些许收获呢??和爬虫君一起,关注Stata学习中的每一个小细节,相信你也可以成为Stata砖家哦(o^_^o)

注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑/高金凤

技术总编/刘贝贝


往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.命令sum2docx输出统计量表到docx文件

4.reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

6.putdocx+wordconvert—将实证结果输出到Word.docx)文档

7.如何从pdf中提取表格数据

8.爬虫俱乐部出品——获取上市公司数据的利器

9.爬虫俱乐部出品——实证结果输出命令

10.Putpdf--神奇的转换工具



关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号

公开收集正在保存拖拽至此处以完成收集私密