99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀Stata二維圖的坐標(biāo)軸選擇
Stata二維圖的坐標(biāo)軸選擇
2018-03-26
收藏

Stata二維圖的坐標(biāo)軸選擇

Stata中,我們經(jīng)常使用graph twoway命令繪制散點(diǎn)圖、折線圖、條形圖等二維圖。如果我們?cè)诶L圖時(shí),需要使用多個(gè)坐標(biāo)軸,這時(shí)應(yīng)該怎么辦呢??→_→這時(shí)就需要用到坐標(biāo)軸的選項(xiàng)(axis_choice_options)啦!

該選項(xiàng)的基本語(yǔ)法如下:

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

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

默認(rèn)(缺省)情況下,Stata指定一個(gè)縱坐標(biāo)軸和一個(gè)橫坐標(biāo)軸,即yaxis(1)和xaxis(1)。Stata最多允許在橫縱兩個(gè)方向各設(shè)置9個(gè)坐標(biāo)軸。例如:yaxis(1 2),此時(shí),縱軸的選擇默認(rèn)為先左后右,即第一個(gè)縱軸在圖形左側(cè),第二個(gè)縱軸在圖形右側(cè);xaxis(1 2),此時(shí),橫軸的選擇默認(rèn)為先下后上,即第一個(gè)橫軸在圖形下側(cè),第二個(gè)橫軸在圖形上側(cè);當(dāng)設(shè)置的縱坐標(biāo)軸(橫坐標(biāo)軸)不少于3個(gè)時(shí),坐標(biāo)軸會(huì)擺放在二維圖的左側(cè)(下側(cè)),我們也可以通過命令來(lái)改變坐標(biāo)軸的位置。

另外,為了使繪制的圖形更美觀,我們還可以通過繪圖的其它選項(xiàng)來(lái)設(shè)置指定坐標(biāo)軸的標(biāo)題、標(biāo)簽、刻度和取值范圍,更改圖形或文字的位置、顏色、形狀、大小等。更多關(guān)于坐標(biāo)軸的詳盡用法,請(qǐng)讀者使用Stata中的help文件來(lái)進(jìn)一步學(xué)習(xí)(help axis_choice_options)。

接下來(lái),我們通過構(gòu)造一個(gè)簡(jiǎn)單的數(shù)據(jù)集來(lái)介紹這一選項(xiàng)的使用方法。在繪圖之前,我們先構(gòu)造一個(gè)數(shù)據(jù)集,生成繪圖所用的變量。

clear

set obs 55

set seed 123456789

gen time = _n

format time %td//日數(shù)據(jù)

gen week = week(time)//周標(biāo)識(shí)

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

sort time

gen CAR = sum(AR)//累計(jì)超額收益率(日)

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

gen meanp_AR = meanAR/meanAR[_n-1] - 1//平均超額收益率變動(dòng)率(周)


首先,我們使用單個(gè)y軸生成AR和CAR的折線圖。當(dāng)只有1個(gè)y軸時(shí),選項(xiàng)yaxis(1)可以省略,x軸同理。

twoway (line CAR time, lwidth(medthick)) (line AR time, lwidth(medthick))//使用一個(gè)y軸 

我們發(fā)現(xiàn),當(dāng)AR和CAR 使用同一y軸時(shí),由于AR的取值范圍遠(yuǎn)小于CAR,因此AR的變化在圖中并不明顯。

接下來(lái),我們使用選項(xiàng)yaxis(n)設(shè)置雙y軸,生成AR和CAR的折線圖。其中,yaxis(1)指AR變量使用第一個(gè)y軸,yaxis(2)指CAR變量使用第二個(gè)y軸,第一個(gè)坐標(biāo)軸選項(xiàng)yaxis(1)可以省略[l1] ,Stata最多允許在同一方向設(shè)置9個(gè)坐標(biāo)軸。

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


此時(shí),我們能明顯看出AR和CAR的變化趨勢(shì)。AR是日超額收益率,變化幅度較大;CAR是累計(jì)超額收益率,呈上升趨勢(shì)。

我們可以使用yaxis(n)和xaxis(n)選項(xiàng)設(shè)置2個(gè)y軸和2個(gè)x軸,生成AR的散點(diǎn)圖、CAR的折線圖和meanAR的條形圖。此時(shí),由于變量取值范圍不同,AR和meanAR可以使用第一個(gè)y軸(0-0.8),CAR使用第二個(gè)y軸(0-25);由于時(shí)間單位的不同,AR和CAR可以使用第一個(gè)x軸(日),meanAR使用第二個(gè)x軸(周)。為了輸出結(jié)果美觀,我們使用對(duì)圖形的顏色、寬度、大小等進(jìn)行了調(diào)整,這些調(diào)整可以通過命令選項(xiàng)寫出,也可以直接在生成的圖形中修改。

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的條形圖。此時(shí),由于變量取值范圍各不相同,AR, CAR和meanp_AR需要分別使用一個(gè)y軸;由于時(shí)間單位的不同,meanp_AR使用第一個(gè)x軸(周),CAR和AR使用第二個(gè)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軸


此時(shí),我們發(fā)現(xiàn),在Stata繪圖中,當(dāng)設(shè)置的縱坐標(biāo)軸(橫坐標(biāo)軸)不少于3個(gè)時(shí),縱坐標(biāo)軸(橫坐標(biāo)軸)會(huì)堆積在圖形左側(cè)(下側(cè))。如果小伙伴們想要自行選擇坐標(biāo)軸出現(xiàn)的位置,可以使用選項(xiàng)yscale(alt)或xscale(alt),將指定的坐標(biāo)軸移到另一側(cè)。

例如,我們希望把條形圖的縱軸移到右側(cè)顯示,使圖形更加美觀,我們可以使用yscale(alt)選項(xiàng)實(shí)現(xiàn)這一操作,命令如下:

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))  

此時(shí),我們使用yscale(alt)選項(xiàng)將條形圖的縱軸移到右側(cè)顯示,并使用yline(0)選項(xiàng)為條形圖增加了一條y=0的水平參考線,增加了圖形的可讀性。


數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }