Stata绘图:散点与分组密度函数图
2023-04-24
温凯迪
5787

连享会   主页 || 推文 || 知乎 || B 站 || 在线课堂

New! 搜推文,找资料,用 lianxh 命令:
安装: ssc install lianxh, replace
使用: lianxh 合成控制
       lianxh DID + 多期, w


⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:温凯迪 (中山大学)
邮箱wkd6107@163.com


目录
[[TOC]]


1. 图片描述

燃油效率,定义为产生特定推力或马力使用的燃油所含的能量除以这份燃油所含的全部潜在能量。其评价指标为每加仑燃油或每千克燃油所能产生的公里数,用 RPM/kg 或 RPM/gal 表示。不同车型的燃油效率不同,本图以 ggplot2 中的 mpg.csv 作为数据来源,分汽车种类描绘了城市燃油效率 (cty),高速公路燃油效率 (hwy) 两个变量之间的关系,如下图所示。

本图将散点图、lowess 拟合曲线与单变量正态分布密度图结合在同一个图上,有利于我们更精确的描述两个变量间的数据关系。散点图可以直观标示两变量间的数量关系,lowess 拟合趋势线展示了两变量的局部规律和趋势,单变量正态分布密度图表示了两变量分别的正态分布。

2. 命令介绍

grc1leg命令

grc1leg 用于组合图形,在具体用法上与 graph combine 相同,只是它为所有组合图形显示一个公共图例,该公共图例是组合图形中的图例之一。

* 命令安装
net install grc1leg, from("http://www.stata.com/users/vwiggins")
* 命令语法
grc1leg name [name ...] [, combine_options legend_options ]

其中,name 是图片名称。combine_options 包括:

  • 选项 colfirstrowscolsholes:用于指定在最终生成的组合图中各图的排列顺序,colfirst表 示该图片显示在下面一列;rows()cols() 指定图片显示在具体的行和列中;holes 指定留出空白的区域。
  • 选项 iscale 可用于指定文本和标志的字体大小。
  • 选项 imargin 用于确定单个图表的边缘长度。
  • 选项 ycommonxcommon 为 X 轴和 Y 轴指定常用刻度。
  • 选项 scheme 为图片设定特定模板。
  • 选项 name 指定组合图的名称。

legend_options 包括:

  • 选项 legendfrom 指定要从中获取组合图例的图形,默认值为列表中的第一个图形。
  • 选项 positionring 用于覆盖图例的默认位置,该位置通常位于绘图区域下方的居中。
  • 使用 position 可以使图例位于绘图区域本身内,并允许将图例放置在绘图内。根据 12 小时制表盘上的小时指定图例放置方向,如 position(12) 意为将图例添加在绘图区域正上方。
  • 使用 ring 可以指定图例与绘图区域间的距离。ring(0) 表示可将图例放置于绘图区域内部;ring(k) 当 k>0 时,图例被放置在绘图区域以外。
  • 选项 span 将图例放置在跨越整个图片宽度或高度的区域。

schemepack命令

schemepack 命令包括许多 Stata 预设图片方案,如 white_tableaublack_tableaugg_tableauwhite_cividisblack_cividisgg_cividis 等。

* 命令安装
ssc install schemepack, replace

palettescolrspace命令

* 命令安装
ssc install palettes, replace
ssc install colrspace, replace

3. 图片绘制

该绘图方案来自 fahad-mirza 的 github 主页,文件源代码为 Sideplots_Distribution_by_Group_Stata.do

. 
. clear all
. * Necessary Package Installations (One time only)
. * net install grc1leg, from("http://www.stata.com/users/vwiggins") replace
. * ssc install schemepack, replace
. * ssc install palettes, replace
. * ssc install colrspace, replace
. * Loading the example dataset from GitHub
. lxhget mpg.txt, replace
. import delimited using mpg.txt, clear

. * Using loop to write and store the plotting commands and syntax by class
. levelsof class, local(classes)
`"2seater"' `"compact"' `"midsize"' `"minivan"' `"pickup"' `"subcompact"' `"suv"'
. foreach class of local classes {
  2.     local sctr `sctr' scatter cty hwy if class == "`class'",    ///
>        mcolor(%60) mlwidth(0) ||
  3.     quietly summarize cty if class == "`class'"
  4.     local cty `cty' function normalden(x, `r(mean)', `r(sd)'),  ///
>        horizontal range(cty) base(0) n(500) xlabel(, nogrid)       ///
>        recast(area) fcolor(%50) lwidth(0) ||
  5.     quietly summarize hwy if class == "`class'"
  6.     local hwy `hwy' function normalden(x, `r(mean)', `r(sd)'),  ///
>        range(hwy) base(0) n(500) ylabel(, nogrid) recast(area)     ///
>        fcolor(%50) lwidth(0) ||        
  7. }

. * Plotting each of the above saved commands and storing them for combining later using name()
. twoway `sctr' || lowess cty hwy ||, legend(off) name(lowess) ///
>     ytitle("City MPG") xtitle("Highway MPG") ysc(r(10(5)35)) ///
>     xsc(r(10(10)40)) xlabel(, nogrid) ylabel(, nogrid)
. twoway `cty', graphregion(margin(b=0)) name(cty) leg(off)    ///
>     fxsize(25) ytitle("") ylabel(none) xtitle("⠀") ysc(r(10(5)35))
. twoway `hwy', graphregion(margin(b=0)) name(hwy) leg(label(1 "2 Seater") ///
>     label(2 "Compact") label(3 "Mid-Size") label(4 "Minivan")            ///
>     label(5 "Pickup") label(6 "Sub-Compact") label(7 "SUV") size(2)      ///
>     row(2) col(4)) fysize(25) xtitle("") xla(none) ytitle("⠀") xsc(r(10(10)50))
  
. * Combining all the plots saved above
. grc1leg hwy lowess cty, title("{bf}Fuel Economy by Vehicle Type", color(navy) ///
>     size(3) j(left) pos(11) margin(l=6)) subtitle("Side plots for density",   ///
>     size(2) pos(11) margin(l=6)) legendfrom(hwy) span hole(2) rows(3)         ///
>     imargin(zero) commonscheme scheme(white_tableau)
      
. * Exporting the visual 
. graph export "Sideplots_Distribution_by_Group_Stata.png", ///
>     as(png) name("Graph") width(1920) replace

4. 相关推文

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

资源共享


尊敬的老师 / 亲爱的同学们:
连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。
请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。
我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。more……
  • 扫码加入连享会微信群,提问交流更方便

Stata绘图:散点与分组密度函数图

最新课程推荐:

课程一:结构模型 · 2025 · 现场班

课程二:连享会 · 面板数据因果推断

FAQ往期课程板书和答疑文档

选题征集,点击 此处 或者扫码填写问卷留下您的宝贵意见,感谢!


NEW!视频课堂lianxh-class.cn

⚡ 新版 lianxh 命令:使用说明
. ssc install lianxh, replace
. lianxh 多期DID

ihelp:帮助文件 PDF 版
. ssc install ihelp, replace
. ihelp xtreg


lianxh_cn_saoma

连玉君 · Stata 33 讲 - 免费
  o 点击观看dofile 下载, --Book--