Stata绘图与可视化教程:从基础到进阶
Stata绘图与可视化教程:从基础到进阶
Stata是一款广泛应用于经济学、社会学等领域的统计分析软件,其强大的绘图功能是数据可视化的重要工具。本文将详细介绍Stata中的图形绘制方法,包括散点图、拟合线和标记点的绘制,帮助读者掌握Stata的可视化能力。
1. Stata 图形
Stata具有出色的图形功能,主要功能概览参见:
- help graph
- Stata 图形大全概览
在统计学中,最常见的图形是显示点或线的 X-Y 图。在 Stata 中,可以使用 towway 子命令来创建这些图形,并且 towway 子命令还具有许多子命令或绘图类型,其中最重要的是 scatter 和 line。此外,我还可以简要介绍一下使用 bar 子命令可以获得的条形图和其他类型的图形。
Stata 10 引入了一个图形编辑器,可用于交互式修改图形。
本节中的所有图形 (除非另有说明) 都使用 Stata 18 中的新默认绘图模板 (schemes),名称为stcolor。如果你使用早期版本,你的图形看起来会有所不同,但此处显示的命令仍然有效。
2. 散点图
在本节中,我们将使用生育率下降数据来说明一些图形。
. infile str14 country setting effort change ///
> using "https://grodri.github.io/datasets/effort.raw", clear
2.1 简单散点图
要按社会环境去生成生育率变化的简单散点图,请使用以下命令:
. graph twoway scatter change setting
请注意,你首先指定 y,然后指定 x。Stata 使用变量标签或变量名称来标记轴。该命令可以缩写为 twoway scatter,或者如果这是图形上唯一的绘图,则可以只输入 scatter。
2.2 拟合线
假设我们也想显示拟合回归线。在某些软件包中,您需要运行回归,计算拟合线,然后绘制它。Stata 可以使用 lfit绘图类型一步完成所有这些操作。
. twoway (scatter setting effort) (lfit setting effort)
现在假设我们想在回归线周围放置置信区间。Stata 可以使用 lfitci 绘图类型来做到这一点,该绘图类型将置信区绘制为灰色带。 由于置信区间可能会遮挡某些点,因此我们先绘制区域,然后再绘制点。
. twoway (lfitci setting effort) (scatter setting effort)
请注意,此命令不标记 y 轴,而是使用图例。你可以使用 ytitle() 选项为 y 轴指定标签,并使用 legend(off) 省略图例。在这里,我们将两者指定为 twoway 命令的选项。为了使读者更清楚这些选项,我将逗号放在新行的开头:
. twoway (lfitci setting effort) (scatter setting effort), ///
> ytitle("Fertility Decline") legend(off)
2.3 标记点
有许多命令选项可以让你控制用于点的标记,包括它们的形状和颜色,请参阅 help marker_options。也可以使用 mlabel(varname) 选项,用变量的值标记点。在下一步中,我们将国家/地区名称添加到图中:
. twoway (lfitci change setting) (scatter change setting, mlabel(country))
标签的一个小问题是哥斯达黎加和特立尼达多巴哥 (以及巴拿马和尼加拉瓜) 的重叠。我们可以通过使用 12 小时制 (12 在上方,3 在右侧,6 在下方,9 在左侧) 和 mlabv() 选项来指定标签相对于标记的位置来解决这个问题。
我们创建一个变量,将默认设置的位置保持在 3 点钟位置,然后将哥斯达黎加移动到 9 点钟位置,将特立尼达多巴哥移动到 11 点钟位置 (我们也可以将尼加拉瓜和巴拿马向上移动一点,比如说到 2 点钟位置):
. gen pos=3
. replace pos = 11 if country == "TrinidadTobago"
. replace pos = 9 if country == "CostaRica"
. replace pos = 2 if inlist(country, "Panama", "Nicaragua")
生成此版本图形的命令如下:
. twoway (lfitci change setting) (scatter change setting, mlabel(country) mlabv(pos))