设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2052|回复: 0

Stata二维图的坐标轴选择

[复制链接]

13

主题

183

金钱

282

积分

入门用户

发表于 2019-8-19 16:06:41 | 显示全部楼层 |阅读模式

在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//平均超额收益率变动率(周)
1.png
首先,我们使用单个y轴生成AR和CAR的折线图。当只有1个y轴时,选项yaxis(1)可以省略,x轴同理。

twoway (line CAR time, lwidth(medthick)) (line AR time, lwidth(medthick))//使用一个y轴
2.png
我们发现,当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轴
3.png
此时,我们能明显看出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轴
4.png
生成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轴

5.png
此时,我们发现,在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))  
6.png
此时,我们使用yscale(alt)选项将条形图的纵轴移到右侧显示,并使用yline(0)选项为条形图增加了一条y=0的水平参考线,增加了图形的可读性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表