1952~2020 年全国 GDP 和各省地区生产总值数据& Stata 绘图方法介绍

根据国家统计局 2021 年 1 月 18 日发布的数据显示,2020年,我国国内生产总值(GDP)首次突破 100 万亿元大关!正好加上最新的数据,我今天给大家分享一份中国历年的 GDP 数据及各省的地区生产总值数据,这份数据比较容易获取,所以今天主要还是以分享整理代码和绘图程序为主。

为了不影响阅读,所有的代码均放置在文末。

中国历年 GDP、第一二三产业占比、人均 GDP

时间范围为 1952~2020 年,包含如下变量:

  • 年份
  • 地区生产总值_亿元
  • 第一产业地区生产总值_亿元
  • 第二产业地区生产总值_亿元
  • 第三产业地区生产总值_亿元
  • 第一产业占GDP比重_百分比
  • 第二产业占GDP比重_百分比
  • 第三产业占GDP比重_百分比
  • 人均地区生产总值_元

首先我们来看一下 1952 ~ 2020 年中国历年的 GDP 和第一、二、三产业产值占 GDP 比重,1952~2019 年的数据来源于 CSMAR 经济金融数据库,2020 年的最新数据来源于国家统计局:

图一:1952~2020 年中国历年 GDP 增长和产业结构

各省历年地区生产总值、第一二三产业占比、人均地区生产总值

时间范围为 1952 ~ 2019 年,包含如下变量:

  • 年份
  • 省代码
  • 省份
  • 地区生产总值_亿元
  • 第一产业地区生产总值_亿元
  • 第二产业地区生产总值_亿元
  • 第三产业地区生产总值_亿元
  • 第一产业占GDP比重_百分比
  • 第二产业占GDP比重_百分比
  • 第三产业占GDP比重_百分比
  • 人均地区生产总值_元

2020 年各省的 GDP 还没有公布,所以仅分享给大家截止 2019 年的。展示各个省的 GDP 最好的办法就是绘制省级地图了:

图二:2019 年中国各省地区生产总值

为了展示各省地区生产总值随时间的变化,我用 Stata 和 R 语言绘制了下面的动图:

×

绘图方法就是先绘制历年的静态图,然后再使用 R 语言组合成动图。

如果我们想展示三个产业的比重,可以用地图 + 饼图:

2019年中国各省地区生产总值和产业结构

Stata 代码

图一是双 y 轴图,绘制代码如下:

use 中国历年GDP, clear
gen line2 = 第一产业占GDP比重_百分比 + 第二产业占GDP比重_百分比
gen line3 = 100
replace 地区生产总值 = 地区生产总值 / 10000
replace 人均地区生产总值_元 = 人均地区生产总值_元 / 1000
tw ///
area 第一产业占GDP比重_百分比 年份, ///
yaxis(1) color("102 194 165"%10) || ///
rarea line2 第一产业占GDP比重_百分比 年份, ///
yaxis(1) color("252 141 98"%10) || ///
rarea line3 line2 年份, ///
yaxis(1) color("141 160 203"%10) || ///
line 人均地区生产总值_元 年份, yaxis(2) ///
lp(solid) lw(*2) lc("229 196 148") || ///
line 地区生产总值 年份, yaxis(1) lp(solid) ///
lw(*2) leg(order(4 "GDP(万亿元)" ///
5 "人均GDP(千元)" ///
1 "第一产业占GDP比重(%)" ///
2 "第二产业占GDP比重(%)" ///
3 "第三产业占GDP比重(%)") ///
pos(6) row(2)) ///
xti("") yti("GDP(万亿) / 占 GDP 的比重(%)", axis(1)) ///
yti("人均GDP(千元)", axis(2) color("229 196 148")) ///
yla(, labcolor("229 196 148") axis(2)) ///
xla(1952(10)2012 2020) ///
ysc(lcolor("229 196 148") axis(2)) ///
ytick(, tlcolor("229 196 148") axis(2)) ///
ti("1952~2020 年中国历年 GDP 增长和产业结构",size(*1.1)) ///
subti("数据来源:CSMAR经济金融数据库、新华社", size(*0.9)) ///
note("绘制:微信公众号 RStata", size(*0.8))

gr export "1952~2020 年中国历年 GDP 增长和产业结构.png", replace width(1200)
gr export "1952~2020 年中国历年 GDP 增长和产业结构.pdf", replace

图二是地图,除了各省的 GDP 外,我们还需要地图数据:

use 各省历年GDP, clear
drop if 省份 == "中国"
replace 地区生产总值_亿元 = 地区生产总值_亿元 / 1000
merge m:1 省代码 using china_prov_db.dta
replace 地区生产总值_亿元 = -1 if missing(年份)
grmap 地区生产总值_亿元 if 年份 == 2019 | missing(年份) ///
using china_prov_coord, id(ID) ///
clmethod(custom) clbreaks(-1 0 10 20 30 40 60 80 100 120) ///
fcolor("gray" "247 252 245" "229 245 224" "199 233 192" "161 217 155" "116 196 118" "65 171 93" "35 139 69" "0 90 50") ///
ocolor("gray" ...) ///
ti("2019 年中国各省地区生产总值", size(*1.1)) ///
subtitle("数据来源:CSMAR经济金融数据库") ///
graphr(margin(medium)) ///
osize(vvthin ...) ///
legend(size(*1.1) ///
order(2 "无数据" 3 "< 10千亿" ///
4 "10~20千亿" 5 "20~30千亿" ///
6 "30~40千亿" 7 "60~80千亿" ///
8 "80~100千亿" 9 "> 100千亿") ///
ti(地区生产总值(千亿), size(*0.5) ///
pos(11))) ///
xsize(18) ysize(12.5) ///
caption("绘制:微信公众号 RStata", size(*0.8)) ///
line(data(china_city_line_coord.dta) size(*0.5 ...) color(black) select(keep if _ID <= 6)) ///
label(data(china_prov_label.dta) x(X) y(Y) l(name) size(*0.8)) ///
xsize(13) ysize(10) ///
polygon(data(polygon) by(value) fcolor(black) ///
osize(vvthin))

gr export "2019年中国各省GDP.pdf", replace
gr export "2019年中国各省GDP.png", replace width(1200)

为了绘制动态图,我们可以先在工作目录下面新建一个 prov_gdp 文件夹,然后循环绘制每年的地图保存在这个文件夹里面,由于 2000 年之前经济增长缓慢,所以仅仅绘制 2000 年之后的:

* 循环绘制所有年份的
use 各省历年GDP, clear
drop if 省份 == "中国"
replace 地区生产总值_亿元 = 地区生产总值_亿元 / 1000
merge m:1 省代码 using china_prov_db.dta
replace 地区生产总值_亿元 = -1 if missing(年份)
forval i = 2000 / 2019{
grmap 地区生产总值_亿元 if 年份 == `i' | missing(年份) ///
using china_prov_coord, id(ID) ///
clmethod(custom) clbreaks(-1 0 10 20 30 40 60 80 100 120) ///
fcolor("gray" "247 252 245" "229 245 224" "199 233 192" "161 217 155" "116 196 118" "65 171 93" "35 139 69" "0 90 50") ///
ocolor("gray" ...) ///
ti("`i' 年中国各省地区生产总值", size(*1.1)) ///
subtitle("数据来源:CSMAR经济金融数据库") ///
graphr(margin(medium)) ///
osize(vvthin ...) ///
legend(size(*1.1) ///
order(2 "无数据" 3 "< 10千亿" ///
4 "10~20千亿" 5 "20~30千亿" ///
6 "30~40千亿" 7 "60~80千亿" ///
8 "80~100千亿" 9 "> 100千亿") ///
ti(地区生产总值(千亿), size(*0.5) ///
pos(11))) ///
xsize(18) ysize(12.5) ///
caption("绘制:微信公众号 RStata", size(*0.8)) ///
line(data(china_city_line_coord.dta) size(*0.5 ...) color(black) select(keep if _ID <= 6)) ///
label(data(china_prov_label.dta) x(X) y(Y) l(name) size(*0.8)) ///
xsize(13) ysize(10) ///
polygon(data(polygon) by(value) fcolor(black) ///
osize(vvthin))

gr export "prov_gdp/`i'年中国各省GDP.png", replace width(1200)
}

然后使用下面的 R 语言代码就能合并这些静态图生成一个 mp4 动图文件了。

在地图上添加饼图需要预先准备好饼图所需的数据:

* 2019 年各个省的三种产业比重
use china_prov_label.dta, clear
gen 省 = substr(name, 1, 6)
save china_prov_label2.dta, replace

use 各省历年GDP, clear
drop if 省份 == "中国"
merge m:1 省代码 using china_prov_db.dta
keep if 年份 == 2019
replace 省 = substr(省, 1, 6)
drop _m
merge 1:1 省 using "china_prov_label2.dta"
drop _m
keep 省份 第一产业占GDP比重_百分比 第二产业占GDP比重_百分比 第三产业占GDP比重_百分比 X Y
drop if missing(省份)
save piedata, replace

然后再绘制地图:

* 绘图
use 各省历年GDP, clear
drop if 省份 == "中国"
replace 地区生产总值_亿元 = 地区生产总值_亿元 / 1000
merge m:1 省代码 using china_prov_db.dta
replace 地区生产总值_亿元 = -1 if missing(年份)
grmap 地区生产总值_亿元 if 年份 == 2019 | missing(年份) ///
using china_prov_coord, id(ID) ///
clmethod(custom) clbreaks(-1 0 40 60 80 100 120) ///
fcolor("gray" "237 248 233" "199 233 192" "161 217 155" "116 196 118" "49 163 84") ///
ocolor("gray" ...) ///
ti("2019 年中国各省地区生产总值", size(*1.1)) ///
subtitle("数据来源:CSMAR经济金融数据库") ///
graphr(margin(medium)) ///
osize(vvthin ...) ///
legend(size(*1.1) ///
order(2 "无数据" 3 "< 40千亿" ///
4 "40~60千亿" 5 "60~80千亿" ///
6 "80~100千亿" 7 "> 100千亿" ///
10 "第一产业" 11 "第二产业" 12 "第三产业")) ///
xsize(18) ysize(12.5) ///
caption("绘制:微信公众号 RStata", size(*0.8)) ///
line(data(china_city_line_coord.dta) size(*0.5 ...) color(black) select(keep if _ID <= 6)) ///
label(data(china_prov_label.dta) x(X) y(Y) l(name) size(*0.8)) ///
xsize(13) ysize(10) ///
polygon(data(polygon) by(value) fcolor(black) ///
osize(vvthin)) ///
diagram(data(piedata) x(X) y(Y) v(第一产业占GDP比重_百分比 第二产业占GDP比重_百分比 第三产业占GDP比重_百分比) ///
type(frect) legenda(on) os(vvthin) ///
size(1.5) fc("102 194 165" "252 141 98" "229 196 148") ///
oc("102 194 165" "252 141 98" "229 196 148"))

gr export "2019年中国各省地区生产总值.pdf", replace
gr export "2019年中国各省地区生产总值.png", replace width(1200)
2019年中国各省地区生产总值

点击这里跳转到 RStata 短书平台获取附件:1952~2020 年全国 GDP 和各省地区生产总值数据& Stata 绘图方法介绍

评论