Stata繪圖:年度資料、日度資料如何繪製在一起?
一個影象裡面繪製兩套資料是非常常見的,但多數情況是這兩套資料擁有相同的x軸(比如都是年度資料),那麼不同x軸的資料(比如年度資料和日度資料)如何繪製到一幅圖中呢?
1。 Stata繪製雙軸圖
之前我們介紹過很多
Stata繪圖
的小技巧(沒看過的可以翻一翻公眾號的歷史記錄),今天我們介紹如何將不同x軸的資料繪製到一幅圖中。
先看資料:
這是人民幣兌美元的日度資料:
這是中國對美出口的年度資料:
如何將其繪製在一起呢?先合併資料:
// 資料合併
use
人民幣兌美元匯率
。
dta
,
clear
gen
year
=
yofd
(
date
)
// 生成year變數
merge
m
:
1
year
using
中國對美出口
。
dta
,
nogen
結果如下:
可以看到,一年有多少個交易日,就有多少個相同的
對美出口額
。
然後,每年只保留第一個
對美出口額
:
// 貿易值每年只保留第一個
gen
tag
=
對美出口額
[
_n
]
-
對美出口額
[
_n
-
1
]
// 對資料進行差分
replace
對美出口額
=
。
if
tag
==
0
//
每一年只保留第一個值
接下來我們初步繪圖:
// 繪圖
twoway
(
bar
對美出口額
date
)
///
(
line
人民幣兌美元
date
,
yaxis
(
2
))
結果如下:
可以看到基本像個樣子。
2。 圖片精裝修
這樣的圖片顯然是拿不出手的。我們進一步對圖片進行精裝修:
format
date
%
tdCCYY
#delimit ;
twoway
(
bar
對美出口額
date
,
barw
(
250
)
lc
(
black
)
)
(
line
人民幣兌美元
date
,
yaxis
(
2
)
lc
(
black
*
0。8
)),
xtitle
(
“”
)
ytitle
(
“對美貿易餘額(十億美元)”
)
ytitle
(
“人民幣兌美元(中間價)”
,
axis
(
2
))
ylabel
(
0
(
50
)
300
)
xlabel
(
`
=
td
(
1
/
1
/
1994
)
‘
(
735
)
`
=
td
(
1
/
12
/
2019
)
’
)
legend
(
label
(
1
對美貿易餘額
)
label
(
2
人民幣兌美元中間價
)
symxsize
(
*
0。5
)
size
(
*
0。8
)
ring
(
0
)
pos
(
11
))
xsize
(
16
)
ysize
(
9
)
scheme
(
s1mono
)
;
#delimit cr
結果如下:
恩,還行!
對上述程式碼略加說明:
第1行,將變數
date
的形式從
1jan1994
變成
1994
這樣的形式,即只保留年份,這樣在最後的x軸上就只有年份;
第3行,
barw()
即
柱形
的寬度,預設為1,即1個單位的寬度。一年有365天,但真正的
交易日
大概260天左右,為了讓柱形粗一點,這裡設定為250;
第9行,
td(1/1/1994)
即“1/1/1994”對應的數字;一年有365天,為了在
座標軸
上每2年標一個刻度,那麼間隔就應該是365*2=730,當然避免閏年可以稍微設大一點,這裡為735;最後結束日期為“1/12/2019”。至於
`=td()‘
就是我們之間介紹過暫元的用法。
第12-13行,設定圖片的尺寸為16*9。