Stata绘图:山脊图绘制
作者:苗妙 (华南理工大学)
邮箱: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]
其中,必选项如下:
yvar
和xvar
:xvar
通常是时间变量,yvar
通常是想要绘制的变量。如果对于每个xvar
和over()
多于一个观测值,该命令在绘图之前,会先估计xvar
内的均值;sum
:对于每个xvar
和over()
多于一个观测值时,可以获取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 为中心的图。给定数字#
,那一组的高度就会变为堆叠的轴心点。这一选项也可以与stack
及stack100
合并使用;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
选项设定包括 fcolor
,fintensity
,lcolor
,lwidth
,lpattern
,lalign
,lstyle
等选项。
二维图选项:可以使用任何的二维图选项,包括 {k}labels
,{k}titles
,name
,notes
等。
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 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。