查看原文
其他

史上最牛Stata绘图模版-schemepack:酷似R中的ggplot2

连享会 连享会 2022-12-31

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

连享会寒假班

作者: 袁子晴 (香港大学)
邮箱: yzq0612@foxmail.com


目录

  • 1. 问题背景

  • 2. 安装和使用

  • 3. 实例演示

    • 3.1 散点图

    • 3.2 折线图

    • 3.3 饼图

    • 3.4 箱线图

    • 3.5 柱状图

    • 3.6 竖向条形图

    • 3.7 横向条形图

    • 3.8 置信区间带

    • 3.9 范围区间图

    • 3.10 面积图

    • 3.11 附加标签的散点图

    • 3.12 分组散点图

  • 4. 参考文献

  • 5. 相关推文



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

1. 问题背景

撰写论文时我们需要绘制出出版级别美观的图表,但是一方面 Stata 默认绘图模版有限,另一方面要想绘制出 R 语言中 ggplot2 风格美观的图表迁移成本又很高,所以作者 Asjad Naqvi 推出了高达 30 种漂亮的用户自定义模版任君选择,鱼与熊掌兼可得。

左右滑动下图可以预览 30 种绘图模版,左上角即为模版名称:

<<< 左右滑动见更多 >>>

2. 安装和使用

首先运行如下命令安装模版集:

ssc install schemepack, replace

在绘图之前设定 white_tableau 为绘图模版:

set scheme white_tableau

或者永久地设定为 white_tableau 绘图模版

set scheme white_tableau, perm

或者在使用 twoway 选项绘图时加入选项 scheme()指定该图的绘图模版

twoway (scatter var2 date if group==1), scheme(white_tableau)
Stata设定绘图模版代码展开

3. 实例演示

以下的 12 个示例是将绘图模版设置为简约明快的 white_tableau后执行的,读者可以根据自己的需要自行修改模版,并重新运行代码即可得到预览图中的对应效果。

3.1 散点图

*** Scatter plot
twoway ///
 (scatter var2 date if group==1) ///
 (scatter var2 date if group==2) ///
 (scatter var2 date if group==3) ///
 (scatter var2 date if group==4) ///
 (scatter var2 date if group==5) ///
 (scatter var2 date if group==6) ///
 (scatter var2 date if group==7) ///
 (scatter var2 date if group==8) ///
 (scatter var2 date if group==9) ///
 (scatter var2 date if group==10) ///
 (scatter var2 date if group==11) ///
 (scatter var2 date if group==12) ///
 , ///
  legend(order(1 "group1" 2 "group2" 3 "group3"  4 "group4"  5 "group5" 6 "group6" 7 "group7" 8 "group8" 9 "group9" 10 "group10" 11 "group11" 12 "group12")) ///
  title("Scatter plot") ///
  note("By the Stata Guide")

3.2 折线图

*** Line graph

twoway ///
 (line var2 date if group==1) ///
 (line var2 date if group==2) ///
 (line var2 date if group==3) ///
 (line var2 date if group==4) ///
 (line var2 date if group==5) ///
 (line var2 date if group==6) ///
 (line var2 date if group==7) ///
 (line var2 date if group==8) ///
 (line var2 date if group==9) ///
 (line var2 date if group==10) ///
 (line var2 date if group==11) ///
 (line var2 date if group==12) ///
 , ///
  legend(order(1 "group1" 2 "group2" 3 "group3"  4 "group4"  5 "group5" 6 "group6" 7 "group7" 8 "group8" 9 "group9" 10 "group10" 11 "group11" 12 "group12")) ///
  title("Line plot") ///
  note("The Stata Guide", size(vsmall))

3.3 饼图

*** Pie chart

graph pie var2 if group <= 10, ///
 over(group) plabel(_all percent, format(%9.2f)) ///
 line(lcolor(black) lwidth(vvthin))  ///                  // outline colors have to be manually added
 title("Pie plot") ///
  note("The Stata Guide", size(vsmall))

3.4 箱线图

*** Box plot

graph box ///
 var* ///
  , ///
  title("Box plot") ///
  note("The Stata Guide", size(vsmall))

3.5 柱状图

*** Histogram

histogram var4, percent ///
 title("Histogram") ///
  note("The Stata Guide", size(vsmall))

3.6 竖向条形图

*** Bar graph

graph bar ///
 var* ///
  , ///
  blabel(bar, format(%9.2f)) ///
  title("Bar graph") ///
  note("The Stata Guide", size(vsmall))

3.7 横向条形图

*** Horizontal bar graph

graph hbar (mean) ///
 var* ///
 if group <= 6, ///
  over(group) ///
  percentages stack ///
  legend(order(1 "Var 1" 2 "Var 2" 3 "Var 3"  4 "Var 4"  5 "Var 5" 6 "Var 6")) ///
  title("Bar graph") ///
  note("The Stata Guide", size(vsmall))

3.8 置信区间带

*** Confidence bands

twoway ///
 (lpolyci var1 var9, fcolor(%80)) ///
 (lpolyci var2 var9, fcolor(%80)) ///
 (lpolyci var3 var9, fcolor(%80)) ///
  , ///
  title("Confidence Interval") ///
  note("The Stata Guide", size(vsmall))

3.9 范围区间图

*** Range graphs

twoway ///
 (rcapsym var2 var3 date if group==1, sort) ///
 (rcapsym var2 var3 date if group==2, sort) ///
  , ///
  title("Range plots") ///
  note("The Stata Guide", size(vsmall))

3.10 面积图

*** Area graphs

twoway ///
 (area den1d den1x, fcolor(%50)) ///
 (area gen2d gen2x, fcolor(%50)) ///
 (area gen3d gen3x, fcolor(%50)), ///
   title("Density plots") ///
   note("The Stata Guide", size(vsmall))

3.11 附加标签的散点图

*** Scatter labels

twoway ///
 (scatter var2 var1, mlabel(group)) ///
  if date==22320 ///
  , ///
  title("Confidence Interval") ///
  note("The Stata Guide", size(vsmall))

3.12 分组散点图

*** By graphs

twoway ///
 (scatter var2 var1) ///
  if group <= 12, ///
  by(group, yrescale xrescale) ///
  by(, title("By graphs") note("The Stata Guide", size(vsmall)))

4. 参考文献

  • Github 项目主页:schemepack 介绍

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 绘图
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:Stata 绘图
    • Stata 绘图极简新模板:plotplain 和 plottig-T251
    • Stata 绘图:一个干净整洁的-Stata-图形模板 qlean
    • Stata:图形美颜-自定义绘图模板-grstyle-palettes
    • Stata 黑白图形模板:中文期刊风格的纯黑白图形

连享会:因果推断专题

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

🍏 关于我们

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


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

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