查看原文
其他

Stata绘图:山脊图绘制

连享会 连享会 2023-10-24

作者:苗妙 (华南理工大学)
邮箱:miaomiao@scut.edu.cn

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


目录

  • 1. 简介

  • 2. 命令介绍

  • 3. Stata 实例

  • 4. 相关推文



1. 简介

本文主要介绍由 Fernando Rios-Avila  (2022) 开发的,用于绘制山脊图的 ridgeline_plot 命令。山脊图作为可视化图形的一种,可以研究不同群组间数值变量的分布情况。其中,分布可以用直方图和密度图表示,它们都对齐到相同的水平尺度,并以轻微的重叠来表示。

2. 命令介绍

命令安装:

net install ridgeline_plot, replace // 需在 Stata 17 版本运行
ssc install palettes, replace
ssc install colrspace, replace

命令语法:

ridgeline_plot yvar xvar [if] [in] [iweight], [over(varname)]
[ridgeline_plot_options color_options legend_options twoway_options]

其中,必选项如下:

  • yvarxvarxvar 通常是时间变量,yvar 通常是想要绘制的变量。如果对于每个 xvarover() 多于一个观测值,该命令在绘图之前,会先估计 xvar 内的均值;
  • sum:对于每个 xvarover() 多于一个观测值时,可以获取 xvar 的权重之和,而不是均值;
  • over(varname):用于绘图的分组变量。如果不需要这一选项,默认使用 line 这一线性图。

外观选项如下:

  • radj(#):用于将绘图范围将扩展到超过 varname 的最小值或最大值,默认值为 0;
  • range(#1 #2):将绘图范围设置为 #1#2 之间,默认使用样本的最大值和最小值;
  • dadj(#):用于调整线条的高度,允许图层间重叠,默认值为 1;
  • bwadj(#):用于确定每个子图的带宽,取值在 0 到 1 之间。当 bwadj=0,所有图将使用简单的平均带宽。当 bwadj=1,所有图会使用由 lpoly 决定的带宽;
  • bwadj2(#):用于改变所有图的带宽,取值必须为正数。例如,bwdj2=0.5 可以将所有带宽调整为原图的一半,默认值为 0.2;
  • bwadj3(#):用于定义所有线条的外生带宽;
  • kernel(kfun):用于选择一个特定类型的核函数来绘图,默认是三角核函数;
  • degree(#):决定了用于平滑的局部回归的程度,默认为 0;
  • nobs(#):定义使用多少个点绘图。较大的数字取值会产生更平滑的图形,但也会使用更多内存,默认值是 200;
  • normalize:用于将所有组的线条高度标准化为 1,默认是线条高度相对于群组高度进行标准化。

堆叠和流线选项如下:

  • stack:用于绘制堆叠图 (stack line plot);
  • stack100:用于绘制堆叠图,标准化为 100 (份);
  • stream([#]):用于绘制流线图 (a stream like plot),默认是绘制以 0 为中心的图。给定数字 #,那一组的高度就会变为堆叠的轴心点。这一选项也可以与 stackstack100 合并使用;
  • half:如果使用了 stream ()half 需要第 # 组的中间成为堆叠的中心点。

图例选项如下:

  • strict:除非设定,否则将使用标签或 over(variable) 的值来标记组。如果值标签未定义,使用 strict 不会显示任何文本;
  • notext:使用时,不会在纵轴上添加任何文本;
  • textopt(opts):用于更改组标识的某些特征,可查看 added_text_options 获取更多细节描述;
  • right:使用时会把组别的标识放在图的右侧,默认是放在图的左侧;
  • offset(#):使用时将组的标识向右 (+) 或左 (-) 移动;
  • gap0:所有图形从 0 开始绘制,效果类似于在一个图中绘制多个核密度图。该选项不能与 violin 选项同时使用;
  • alegend:在图表中添加一个带有 over(varname) 定义的所有数值的图例,默认情况是不显示任何图例。可以与 legend_options 合并使用。

颜色选项如下:

  • color(colorlist):使用一个颜色列表为 over(varname) 指定每组颜色。如果指定的颜色少于 over(varname) 定义的组,后面的组将使用最后指定的颜色。例如,如果输入 color(red blue),但 over(var) 有三组,那么最后一组也将被指定为蓝色;
  • colorpalette(*):另一种指定颜色的方法,是使用 colorpalette 命令来定义颜色,并将他们用于散点图。

如果没有选择颜色选项,那么颜色会按照当前模板选择,最多可以使用 15 种颜色。同时,也可使用 rarea 选项设定包括 fcolorfintensitylcolorlwidthlpatternlalignlstyle 等选项。

二维图选项:可以使用任何的二维图选项,包括 {k}labels{k}titlesnamenotes 等。

3. Stata 实例

我们利用命令开发者提供的数据 covid_small.dta,对新冠疫情的死亡率分布情况进行可视化。

山脊图的基准图:时间和南美洲各国家维度上,新增死亡数。

. net get ridgeline_plot.pkg, replace // 下载范例数据
. use covid_small.dta, clear
. ridgeline_plot new_deaths date, over(country)

但这张图只能看到巴西的信息,其他国家由于数值较小,看不到更多信息。因此我们可以对图进行标准化处理。

. ridgeline_plot new_deaths date, over(country) normalize textopt(size(small) placement(e))

现在这张图看起来好多了。但我们可以通过将左侧的文本改成图例,调整重叠的部分。

. ridgeline_plot new_deaths date , over(country) normalize notext alegend dadj(3)

如果你对堆叠条形图 (stackbars) 感兴趣,也可以这样作图。

. ridgeline_plot new_deaths date, over(country) notext alegend stack

同时,我们也可以将堆叠标准化为 100。

. ridgeline_plot new_deaths date, over(country) notext alegend stack100

流线图 (Streamlines) 也很容易做,命令如下:

. ridgeline_plot new_deaths date, over(country) notext alegend stream

我们也可以将流线图向上调整,命令如下:

. ridgeline_plot new_deaths date, over(country) notext alegend stream(3)

4. 相关推文

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

  • 专题:Stata绘图
    • Stata绘图:绘制二维地图
    • Stata绘图:峰峦图绘制 joy_plot
    • Stata绘图:绘制华夫饼图-waffle
    • Stata绘图:绘制美观的散点图-superscatter
    • Stata绘图:回归系数可视化-multicoefplot
    • Stata绘图:如何更高效的绘制图形
    • Stata绘图:绘制桑基图-sankey_plot
    • Stata绘图-可视化:组间差异比较散点图
    • Stata绘图:addplot-fabplot-多图层美化图片
    • Stata绘图:箱形图与小提琴图-vioplot
    • Stata绘图:太美了!羊皮卷风格图形
    • Stata绘图:自定义绘图利器-palettes
    • 史上最牛Stata绘图模版-schemepack:酷似R中的ggplot2-袁子晴
    • Stata绘图:addplot-层层叠加轻松绘图
    • Stata 绘图:用 Stata 绘制一打精美图片-schemes
    • 常用科研统计绘图工具介绍
    • Stata空间计量:莫兰指数绘图moranplot命令介绍
    • Stata绘图-组间差异可视化:不良事件火山图、点阵图

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

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

🍏 关于我们

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


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

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