查看原文
其他

Stata绘图:多维柱状图绘制

连享会 连享会 2023-10-24

👇 连享会 · 推文导航 | www.lianxh.cn

连享会 · 2023 寒假班

   

作者:王月琴 (中国农科院 )

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

任务

想绘制一幅多维柱状图。如果用 Excel 绘制,似乎并不复杂,但后续修图比较麻烦,且绘图工作不具有可重复性。

为此,想用 Stata 绘制这幅图形。由于对 Stata 绘图不熟悉,前后折腾了好几个小时。不过,经过此番折腾,对于 Stata 绘图命令的语法特征,各个要素的选项设定有了比较清晰的了解。

Excel 输出的多维柱状图

Stata 绘图过程

原始数据存储于 Excel 表格中,可以用 import excel 命令导入。这里,为了便于展示,使用更原始的 input 命令导入:

clear
input year str30 region level
2008 "China" 5.368679
2009 "China" 10.27191
2010 "China" 11.32058
2011 "China" 11.88313
2012 "China" 18.64346
2013 "China" 21.03853
2014 "China" 14.79839
2015 "China" 20.26556
2016 "China" 24.42027
2017 "China" 25.32076
2018 "China" 26.54098
2008 "Manitoba" 40.45824
2009 "Manitoba" 59.37749
2010 "Manitoba" 60.37274
2011 "Manitoba" 63.62734
2012 "Manitoba" 52.39755
2013 "Manitoba" 61.7517
2014 "Manitoba" 70.32643
2015 "Manitoba" 65.98277
2016 "Manitoba" 61.32922
2017 "Manitoba" 48.68953
2018 "Manitoba" 52.63895
2008 "United States of America" 52.33519
2009 "United States of America" 93.42258
2010 "United States of America" 51.09012
2011 "United States of America" 72.44342
2012 "United States of America" 61.02513
2013 "United States of America" 80.46352
2014 "United States of America" 77.81561
2015 "United States of America" 82.49318
2016 "United States of America" 73.81653
2017 "United States of America" 72.35381
2018 "United States of America" 74.25181
end
* save "Fig_Data.dta", replace // 保存数据

绘图语句如下。几点说明:

  • 由于语句比较长,故用 #delimit ; 将 Stata 的换行方式由默认的回车键更改为 ;#delimit ; 可以简写为 #d ;);待绘图命令结束后,用 #delimit cr 恢复默认设定。注意: 绘图命令的最后一行只有一个结束符 ;
  • 命令中涉及各个选项的填写,均已做了简要说明,详情参见 help graph bar
* use  "Fig_Data.dta",  clear 
#delimit ;
graph bar (asis) level
  ,  // 后面都是选项设定
  over(region, gap(0) label(nolabel)) //首先按照地区分类, 无横坐标标签
  over(year,label(labsize(small)))    //其次按照年份分类,横坐标标签字体小号
  asyvars                             //按照地区在y轴分类
  ylabel(0(20)100, tposition(inside) labsize(*0.8) angle(0)) 
      // 纵轴刻度和标签设定
      // 纵坐标从0-100,刻度线朝内, y轴标签字号为默认字号的 0.8 倍
   // 标签为纵向放置 (默认是横向)
  ytitle("%", tstyle(smbody)) // y 轴标题为小号字体
  blabel(bar, size(vsmall) format(%3.1f)) 
      //产生数字标签,字体小号,固定格式保留1位小数
  bar(1, color(red)) 
  bar(2, color(green)) 
  bar(3, color(orange)) //中国条形图为红色,加拿大为绿色,美国为橙色
  legend(row(1) ring(1) position(6) 
         label(1 "中国") 
   label(2 "加拿大(曼)") 
   label(3 "美国") 
   order(1 2 3) 
   size(small)) 
  //图例: 呈一列放在图表外6点钟方向,标签按照地区排列,图例字体小号
  graphregion(color(white)) //图片底色为白色
  
;
#d ;
. graph export Figure.png, replace //保存图片

输出 Stata 图形如下:

连享会-StataChina多维柱状图

课程推荐:因果推断实用计量方法
主讲老师:邱嘉平教授
🍓 课程主页https://gitee.com/lianxh/YGqjp

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存