Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:柯有聪 (中山大学)
邮箱:koyt@mail2.sysu.edu.cn
目录
本文主要介绍了正负异色柱形图及其绘制方法,以及在 Stata 中的实现。
柱形图,又称长条图、柱状统计图、条图、条状图、棒形图,是一种以长方形的长度为变量的统计图表。柱形图用来比较两个或以上的价值 (不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。
与柱形图相似,正负异色柱形图也是以长方形的长度为变量的统计图表。与之不同的是,正负异色柱形图可以分别将正值和负值互相颠倒显示,并辅以不同的颜色,如下图所示。
本文介绍的命令所作的柱形图有别于一般的正负异色柱形图,通过该命令可以实现双变量的正负异色柱形图绘制。如下图所示,长方形的纵长度为 change 变量,而横长度为 population 变量,长方形的形状可以更直观的展示数据的特征而无需额外增加更多的柱形图。
marimekko
是由 Asjad Naqvi 提供的,用以绘制双变量正负异色柱形图的命令。
双变量正负异色柱形图实际上是一个马赛克图 (Mosaic Plot) ,又被称为 Marimekko Plot 或 Mekko Plot,这些名称以芬兰纺织品生产商 Marimekko 的名字命名,这源于他们的印花上的相似而独特的设计,marimekko
命令也因此得名。
命令安装:
. ssc install marimekko, replace
命令语法:
marikmekko y x [if] [in], label(varname) [,options]
其中,
label(variable)
:表示以该变量定义标签,此项为必填项;sort(variable)
:表示以该变量定义排序顺序;reverse
:表示逆序;colorp(color)
和 colorn(color)
:表示 y 轴变量为正值和负值的条形图的颜色,可以填写色彩名或 RGB 值,如 "255 255 0";lcolor(color)
或 lc(value)
:表示外边框颜色,默认为白色;lwidth(color)
或 lw(value)
:表示外边框宽度,默认为 0.1;mlabsize(value)
或 mlabs(value)
:表示标签文字的粗细,默认为 1.6;mlabangle(value)
或 mlaba(value)
:表示标签文字的角度,默认为 0 (即与 x 轴平行);mlabcolor(value)
或 mlabc(value)
:表示标签文字的颜色,默认为主题的默认值;mlabgap(value)
或 mlabg(value)
:表示标签与条形图之间的距离,默认为 0.5;scheme(string)
:表示加载自定义主题,主题可参考 schemepack
命令。
以中国第七次 (2020年) 人口普查数据为例,从 Gitee 仓库导入数据:
. lxhuse marimekko_example.dta, clear
设置图表主题为 white_tableau,设置字体为 Arial Narrow:
. ssc install schemepack, replace
. set scheme white_tableau
. graph set window fontface "Arial Narrow"
将人口数据缩小一万倍,人口增长率转换为百分比:
. replace grp = grp * 100
. replace pop=pop/10000
绘制纵坐标为各省人口增长率,横坐标为各省人口总数的正负异色柱形图 ( 其中 grp 为各省人口增长率,pop 为各省人口总数,region 为省名):
. marimekko grp pop, label(region) ///
> sort(grp) /// 将柱形图按照各省人口由小到大进行排序
> colorp(254 226 218) colorn(255 175 175) /// 设置柱形图颜色
> lc(gs8) lw(0.1) /// 设置外边框颜色和宽度
> mlabs(2) mlaba(45) mlabg(0) mlabc(black) /// 设置标签文字的粗细、角度、颜色和距离
> ylabel(-20(5)25,labsize(2.5)) /// 设置纵坐标格式
> xlabel(,labsize(2.5)) /// 设置横坐标格式
> ytitle("人口增长率/%", size(2.5)) /// 设置纵坐标标签
> xtitle("人口/万", size(2.5)) /// 设置横坐标标签
> xsize(3) ysize(2) // 设置图表比例
输出图表如下:
绘制纵坐标为各省人口净迁移率、横坐标为各省人均地区生产总值的正负异色柱形图 (其中 nmr 为各省人口净迁移率,rgdppc 为各省人均地区生产总值):
. marimekko nmr rgdppc, label(region) ///
> sort(nmr) ///
> colorp(255 245 227) colorn(250 196 169) ///
> lc(gs8) lw(0.1) ///
> mlabs(2) mlaba(45) mlabg(0) mlabc(black) ///
> ylabel(,labsize(2.5)) xlabel(,labsize(2.5)) ///
> ytitle("人口净迁移率/%", size(2.5)) ///
> xtitle("人均地区生产总值/元", size(2.5)) ///
> xsize(3) ysize(2)
输出图表如下:
可以看到 2020 年北京、天津、上海、江苏、浙江、福建、广东等地主要人口迁入地的人口净迁移率率显著为正,特别是上海、浙江、北京、广东已成为人口高强度迁入地区,而且人口增长率也位居前列。
而作为东北三省的吉林、辽宁和黑龙江等地的人口净迁移率和人口增长率均为负增长。人均地区产值较高的上海、北京、广东、江苏等地人口净迁移率同样位居前列,不难发现省际人口迁出规模与迁入规模的分布比较集中,主要表现在人口向东部沿海等较发达地区迁移。
本篇推文主要介绍了正负异色柱形图和 marimekko
命令的实际操作,marimekko
命令为传统柱形图的延申应用提供了帮助,并且极大简化了作图操作。与之类似,spineplot
命令提供了绘制马赛克图的方法,可以进一步美化正负异色柱形图的绘制。
Note:产生如下推文列表的 Stata 命令为:
lianxh
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh