Stata绘图:多维柱状图绘制

论坛 期权论坛 期权     
Stata连享会   2019-4-29 12:35   8361   0
作者:王月琴 (中国农科院 )
Stata 连享会:知乎 | 简书 | 码云
python 爬虫与文本分析专题-现场班

连享会-Python爬虫与文本分析现场班-山西大学 2019.5.17-19[h2]一起学空间计量……[/h2]
空间计量专题-西安 2019.6.27-30
特别说明
文中包含的链接在微信中无法生效。请点击本文底部左下角的
  1. 【阅读原文】
复制代码
,转入本文
  1. 【简书版】
复制代码

[h2]任务[/h2]想绘制一幅多维柱状图。如果用 Excel 绘制,似乎并不复杂,但后续修图比较麻烦,且绘图工作不具有可重复性。
为此,想用 Stata 绘制这幅图形。由于对 Stata 绘图不熟悉,前后折腾了好几个小时。不过,经过此番折腾,对于 Stata 绘图命令的语法特征,各个要素的选项设定有了比较清晰的了解。

Excel 输出的多维柱状图[h2]Stata 绘图过程[/h2]原始数据存储于 Excel 表格中,可以用
  1. import excel
复制代码
命令导入。这里,为了便于展示,使用更原始的
  1. input
复制代码
命令导入:
    1. clear
    复制代码
    1. input year    str30 region level
    复制代码
    1. 2008    "China" 5.368679
    复制代码
    1. 2009    "China" 10.27191
    复制代码
    1. 2010    "China" 11.32058
    复制代码
    1. 2011    "China" 11.88313
    复制代码
    1. 2012    "China" 18.64346
    复制代码
    1. 2013    "China" 21.03853
    复制代码
    1. 2014    "China" 14.79839
    复制代码
    1. 2015    "China" 20.26556
    复制代码
    1. 2016    "China" 24.42027
    复制代码
    1. 2017    "China" 25.32076
    复制代码
    1. 2018    "China" 26.54098
    复制代码
    1. 2008    "Manitoba"  40.45824
    复制代码
    1. 2009    "Manitoba"  59.37749
    复制代码
    1. 2010    "Manitoba"  60.37274
    复制代码
    1. 2011    "Manitoba"  63.62734
    复制代码
    1. 2012    "Manitoba"  52.39755
    复制代码
    1. 2013    "Manitoba"  61.7517
    复制代码
    1. 2014    "Manitoba"  70.32643
    复制代码
    1. 2015    "Manitoba"  65.98277
    复制代码
    1. 2016    "Manitoba"  61.32922
    复制代码
    1. 2017    "Manitoba"  48.68953
    复制代码
    1. 2018    "Manitoba"  52.63895
    复制代码
    1. 2008    "United States of America"  52.33519
    复制代码
    1. 2009    "United States of America"  93.42258
    复制代码
    1. 2010    "United States of America"  51.09012
    复制代码
    1. 2011    "United States of America"  72.44342
    复制代码
    1. 2012    "United States of America"  61.02513
    复制代码
    1. 2013    "United States of America"  80.46352
    复制代码
    1. 2014    "United States of America"  77.81561
    复制代码
    1. 2015    "United States of America"  82.49318
    复制代码
    1. 2016    "United States of America"  73.81653
    复制代码
    1. 2017    "United States of America"  72.35381
    复制代码
    1. 2018    "United States of America"  74.25181
    复制代码
    1. end
    复制代码
    1. * save  "Fig_Data.dta", replace  // 保存数据
    复制代码
绘图语句如下。几点说明:
  • 由于语句比较长,故用
    1. #delimit ;
    复制代码
    将 Stata 的换行方式由默认的回车键更改为
    1. ;
    复制代码
    1. #delimit ;
    复制代码
    可以简写为
    1. #d ;
    复制代码
    );待绘图命令结束后,用
    1. #delimit cr
    复制代码
    恢复默认设定。注意: 绘图命令的最后一行只有一个结束符
    1. ;
    复制代码

  • 命令中涉及各个选项的填写,均已做了简要说明,详情参见
    1. help graph bar
    复制代码

    1. * use  "Fig_Data.dta",  clear
    复制代码
    1. #delimit ;
    复制代码
    1. graph bar (asis) level
    复制代码
    1.   ,  // 后面都是选项设定
    复制代码
    1.   over(region, gap(0) label(nolabel)) //首先按照地区分类, 无横坐标标签
    复制代码
    1.   over(year,label(labsize(small)))    //其次按照年份分类,横坐标标签字体小号
    复制代码
    1.   asyvars                             //按照地区在y轴分类
    复制代码
    1.   ylabel(0(20)100, tposition(inside) labsize(*0.8) angle(0))
    复制代码
    1.       // 纵轴刻度和标签设定
    复制代码
    1.       // 纵坐标从0-100,刻度线朝内, y轴标签字号为默认字号的 0.8 倍
    复制代码
    1.       // 标签为纵向放置 (默认是横向)
    复制代码
    1.   ytitle("%", tstyle(smbody)) // y 轴标题为小号字体
    复制代码
    1.   blabel(bar, size(vsmall) format(%3.1f))
    复制代码
    1.       //产生数字标签,字体小号,固定格式保留1位小数
    复制代码
    1.   bar(1, color(red))
    复制代码
    1.   bar(2, color(green))
    复制代码
    1.   bar(3, color(orange)) //中国条形图为红色,加拿大为绿色,美国为橙色
    复制代码
    1.   legend(row(1) ring(1) position(6)
    复制代码
    1.          label(1 "中国")
    复制代码
    1.          label(2 "加拿大(曼)")
    复制代码
    1.          label(3 "美国")
    复制代码
    1.          order(1 2 3)
    复制代码
    1.          size(small))
    复制代码
    1.   //图例: 呈一列放在图表外6点钟方向,标签按照地区排列,图例字体小号
    复制代码
    1.   graphregion(color(white)) //图片底色为白色
    复制代码
    1.   ;
    复制代码
    1. #d ;
    复制代码
    1. . graph export Figure.png, replace //保存图片
    复制代码
输出 Stata 图形如下:

连享会-StataChina多维柱状图
[h3]关于我们[/h3]
  • 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
  • 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词
    1. Stata
    复制代码
    1. Stata连享会
    复制代码
    后关注我们。
  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
  • Stata连享会 精彩推文1   || 精彩推文2
[h3]联系我们[/h3]
  • 欢迎赐稿:  欢迎将您的文章或笔记投稿至
    1. Stata连享会(公众号: StataChina)
    复制代码
    ,我们会保留您的署名;录用稿件达
    1. 五篇
    复制代码
    以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 联系邮件:  StataChina@163.com
[h3]往期精彩推文[/h3]


欢迎加入Stata连享会(公众号: StataChina)[h2][/url][/h2][url=http://mp.weixin.qq.com/s?__biz=MzAwMzk4ODUzOQ==&mid=2247485104&idx=1&sn=8c47b6a91d36cd81fc57f9b9cdd550b6&chksm=9b338be4ac4402f2e2b7358a827202258691bdd76d656d07eca27ce50905f1d47dd6042e0071&scene=21#wechat_redirect]

[url=http://mp.weixin.qq.com/s?__biz=MzAwMzk4ODUzOQ==&mid=2247485064&idx=1&sn=58e05c5ef029356ddfe71cb6defefd4b&chksm=9b338bdcac4402caebd7ff2e33af05ad0133351e277040f5d365a3da2fdbf2d6036fe75f9789&scene=21#wechat_redirect][/url]
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:190
帖子:39
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP