Stata_画图专题(2):基础绘图命令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
特别鸣谢中南财经政法大学统计与数学学院张璇老师对本专题提供命令、图形素材。
1 基础绘图命令
Stata 绘制的基本图形简介以表的形式列出,请参见表 1。 温馨提示:若使用 Adobe Reader (其他阅读器应该也有类似功能)来浏览本文档,在点击 文档内蓝色链接后欲返回原处时,请在空白处右键选择 “上一试图 (V)”,或者使用快捷键 “Alt + 向左箭头”。同时请善用阅读器左侧的书签功能。
2
1.2 scatter:散点图
命令格式
[
]
[ ][ ][
][
]
twoway scatter varlist if in weight , options
[
][
]
scatter varlist || lfit varlist || line varlist
其中下划线、方括号的含义与前面相同,不赘述。此处 varlist 是变量列表,一般二维的散点图 就是两个变量;[options] 是可选参数,参数很多,请 help scatter 来查看。常用的有 “连线” connect(l) 和 “去散点” msymbol(i),在下面的结果中可以看到。在第二行的命令中给出了散 点图的用途 —“构造回归曲线” lfit。第二行命令的意思是(1)画出散点图,(2)拟合回归直 线并(3)按点的先后顺序连接起来。上述三个可以组合起来使用。
// Scatter Graph (1) // Scatter Graph (2) // Scatter Graph (3)
// Scatter Graph (4) // Scatter Graph (5) // Scatter Graph (6) // 对上图数据预排序后再作图,结果略
65
65
60
string functions
programming functions
datetime_functions time-series functions
matrix functions
三角函数、取整、对/指数、最值等 伯努利、卡方、正态、几何分布等 符合某一概率分布的随机数组 字符串拼接、提取、长度及 ASCII 码等 e/r/s 型返回值及其他编程方面的函数 对于日期/时间数据的转化、提取等
tin(d1, d2), twithin(d1, d2) 求矩阵行列式、逆、相关系数、分解等
命令范例及结果
1 // 函数图:twoway function
2
3 twoway function y=x^2+2*x+1, range(-2 2) 4 twoway function y=normalden(x), range(-4 4) 5 twoway function exp(-x/6)*sin(x), range(0 12.57) 6 tw function logit(x)
60
55
life expectancy
55
life expectancy
50
50
45
45
40
40
65
60
55
life expectancy
50
45
1900
1910
1920 Year
1930
1940
(1) 预期寿命与年份的散点图
1900
1910
1920 Year
1930
1940
(2) 按散点的先后顺序依次连接
命令范例及结果
1 // 散点图:scatter
2
3 sysuse uslifeexp2, clear 4 twoway scatter le year 5 tw scatter le year, connect(l) 6 scatter le year, connect(l) msymbol(i)
7
1.1 twoway function:函数图
命令格式
[[ ] ]
[ ][ ][
]
twoway function y = f(x) if in , options
其中下划线为命令的最简写形式,即 twoway 可简写为 tw;方括号内的部分均可省略,即可省 略 “y =” 这个部分;f (x) 是这个命令的主体,可以是一般数学函数式,也可以是 Stata 内已有
绘制普通的数学、统计函数图形(与数据库数据无关) 用两组数据构成多个坐标点,考察坐标点的分布a 由一系列高度不等的纵向条纹或线段表示某一组数据分布情况b 用于显示多组数据间某些项目的比较情况,如均值、频数等 用点来描绘统计量的值,进而进行组与组间的比较 只用 5 个点c 对数据集做简单的总结,又因形状如箱子而得名 显示一个数据系列中各项的大小与其占比 将多个变量两两做散点图后类似矩阵元素般放入图中
均值(默认) 中位数 第 1 分位数 中位数 第 99 分位数 标准差 总和 计数 最大/小值 第一/最后值
0
0
2,000
3,000 Weight (lbs.)
4,000
Price
Fitted values
5,000
(5) 保留散点图并拟合回归直线
2,000
3,000 Weight (lbs.)
4,000
Price
Price
5,000
(6) 保留散点图并依次连接a(请对比 (2))
a此图无意义,但若为运动轨迹则有意义。若想从左到 右连接图中散点,则需先对数据排序(或加 sort 选项)
图 2: 散点图
1.3 histogram:直方图
命令格式
[
]
[ ][ ][
][
]
twoway histogram varname if in weight , options
其中 varname 指某一变量,因为画直方图只能对一个变量画。其余的只介绍 “分组” 选项 bin(),括号内是将数据等分的组数。其余的选项请 help histogram 来查看。
15,000
10,000
Price
5,000
0
1900
1910
1920 Year
1930
1940
(3) 去散点,保留连线
2,000
3,000 Weight (lbs.)
4,000
5,000
(4) 价格和车重的散点图
3
40
15,000
15,000
10,000
Price
10,000
5,000
5,000
命令范例及结果
1 // 直方图: histogram
2
3 sysuse auto, clear 4 twoway histogram price 5 histogram price, bin(20)
// Histogram Graph (1) // Histogram Graph (2)
1.0e−04 2.0e−04 3.0e−04 4.0e−04
节链接
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
图形名称
函数图 散点图 直方图 条形图 点统计图 箱线图
饼图 矩阵图
表 1: Stata 中常用图形
命令关键词
说明
twoway function
[twoway] scatter
[twoway] histogram graph bar graph dot graph box graph pie graph matrix
Stata 画图专题 (2):基础绘图命令
中南财经政法大学 STATA 协会 学术组 2013 年 3 月 12 日
俗话说 “一图胜千言”。图像的确比文字要来得形象、生动得多。在写论文时,我们要对数 据进行作图;在商务幻灯片中,我们也免不了用图片来表达某些结果,让人眼前一亮。而作为 一款统计软件,Stata 小巧但不简单,在作图上尤其是技术作图上这是它的强项;其绘制出的图 形精致,且达到了论文发表的水平,这也是用户舍弃其他软件包的原因之一。这一次,我们以 专题的形式,详细向大家介绍一下 Stata 的作图。
8 sysuse auto, clear 9 twoway scatter price weight 10 scatter price weight || lfit price weight 11 scatter price weight || line price weight 12 scatter price weight || line price weight, sort
−4
−2
0
2
4
x
(2) 正态密度函数
1
5
.5
0
y
y
0
−5
−.5
0
5
10
15
x
(3) exp(−x/6) · sin(x), x ∈ (0, 12.57)
0
.2
.4
.6
.8
1
x
(4) logit(x)
图 1: 函数图
1这些函数都非常有用,比如后来讲到 display, generate, egen 等命令、编程时都是会用到的。表 2 中其余的函 数类别我们之后会分别在日期/时间、随机模拟、矩阵、编程等专题中详细介绍。
编号
1 2 3 4 5 6 7 8
函数类别
数学函数
概率分布及密度函数
随机数函数 字符串函数
编程函数 日期及时间函数
选择时间间隔 矩阵函数
表 2: Stata 中的函数类别 帮助关键词 常用举例
math functions density functions
random-number functions
a一般用于判断两变量之间是否存在某种关联或总结坐标点的分布模式。包括线性相关、非线性相关和不相关等 b一般用横轴表示数据类型(组距自定),纵轴表示分布情况(如频数等) c这 5 个点分别为:下边缘、下分位数 (Q1)、中位数、上分位数 (Q3) 和上边缘。上下边缘非最大、最小值,而是排 除异常值后的最值。具体请查看统计学教科书或 http://baike.baidu.com/view/1376547.htm?fromId=1326550。箱 线图的构造见第 7 页图 6
• “堆叠”,即表示多个柱状图叠在一起(看累计总值及每组占比),命令是 stack。
其余的选项请 help graph bar 来查看。上述两行命令区别是第二行命令只是水平 (horizontal) 形式的条形图。
表 3: 描述统计命令 命令 含义
mean median
p1 p50 p99
sd sum count max/min first/last
// Twoway Function Graph (1) // Twoway Function Graph (2) // Twoway Function Graph (3) // Twoway Function Graph (4)
.4
10
8
.3
6
.2
y
y
4
.1
2
0
0
−2
−1
0
1
2
x
(1) y = x2 + 2 · x + 1, x ∈ (−2, 2)
1
的函数1(表 2 中列举了 Stata 中的函数类别,附录 A 的表 5 列举了常用数学函数。具体可输入 help function 来获取帮助)。由于这里的 y 和 x 都仅针对这个命令的,故不会影响 Stata 内 存中已存在的数据。这里的 [options] 是可选参数,具体请直接 help twoway function 来查看。 一般我们会用到 range(# #),即坐标横轴的取值范围,如 range(0 12.57) 表示 x ∈ (0, 12.57)。
[ ][ ][
][
]
graph hbar yvars if in weight , options
其中 yvars 是变量列表,值的大小由 y 轴来刻画;而条形图中 x 轴代表的是类别,其宽度都是 一样的。比如有两组数据:男生人数 45 人和女生人数 50 人,那么条形图的主要用途是对比两 组人的数量(y 轴值)。在命令中,yvars 除了要填多个变量,而且在变量列表前还需加上需对 比的统计量2。表 3 中列举了常用的一些。若想如实反映3,则命令为 (axis)。注意:这些统计 量需放置于变量列表 yvars 之前,且需要用英文括号括起来。
可选参数 [options] 需要讲两个:
• “分组”。前面说的画条形图需要先分组,那么分组的命令是 over(varname[, over_subopts]), 即按某一变量 varname 来分组;[over_subopts] 是次可选项,比如 sort(#) 表示 “按第 # 组的值排序后绘图”。最简单的形式4可以参看表 4;
3.0e−04
2.0e−04
Density
Density
Biblioteka Baidu
1.0e−04
0
0
5,000
10,000 Price
(1) 组数默认
15,000
0
图 3: 直方图
5,000
10,000 Price
(2) 分 20 组
15,000
4
1.4 graph bar:条形图
命令格式
[ ][ ][
][
]
graph bar yvars if in weight , options
1 基础绘图命令
Stata 绘制的基本图形简介以表的形式列出,请参见表 1。 温馨提示:若使用 Adobe Reader (其他阅读器应该也有类似功能)来浏览本文档,在点击 文档内蓝色链接后欲返回原处时,请在空白处右键选择 “上一试图 (V)”,或者使用快捷键 “Alt + 向左箭头”。同时请善用阅读器左侧的书签功能。
2
1.2 scatter:散点图
命令格式
[
]
[ ][ ][
][
]
twoway scatter varlist if in weight , options
[
][
]
scatter varlist || lfit varlist || line varlist
其中下划线、方括号的含义与前面相同,不赘述。此处 varlist 是变量列表,一般二维的散点图 就是两个变量;[options] 是可选参数,参数很多,请 help scatter 来查看。常用的有 “连线” connect(l) 和 “去散点” msymbol(i),在下面的结果中可以看到。在第二行的命令中给出了散 点图的用途 —“构造回归曲线” lfit。第二行命令的意思是(1)画出散点图,(2)拟合回归直 线并(3)按点的先后顺序连接起来。上述三个可以组合起来使用。
// Scatter Graph (1) // Scatter Graph (2) // Scatter Graph (3)
// Scatter Graph (4) // Scatter Graph (5) // Scatter Graph (6) // 对上图数据预排序后再作图,结果略
65
65
60
string functions
programming functions
datetime_functions time-series functions
matrix functions
三角函数、取整、对/指数、最值等 伯努利、卡方、正态、几何分布等 符合某一概率分布的随机数组 字符串拼接、提取、长度及 ASCII 码等 e/r/s 型返回值及其他编程方面的函数 对于日期/时间数据的转化、提取等
tin(d1, d2), twithin(d1, d2) 求矩阵行列式、逆、相关系数、分解等
命令范例及结果
1 // 函数图:twoway function
2
3 twoway function y=x^2+2*x+1, range(-2 2) 4 twoway function y=normalden(x), range(-4 4) 5 twoway function exp(-x/6)*sin(x), range(0 12.57) 6 tw function logit(x)
60
55
life expectancy
55
life expectancy
50
50
45
45
40
40
65
60
55
life expectancy
50
45
1900
1910
1920 Year
1930
1940
(1) 预期寿命与年份的散点图
1900
1910
1920 Year
1930
1940
(2) 按散点的先后顺序依次连接
命令范例及结果
1 // 散点图:scatter
2
3 sysuse uslifeexp2, clear 4 twoway scatter le year 5 tw scatter le year, connect(l) 6 scatter le year, connect(l) msymbol(i)
7
1.1 twoway function:函数图
命令格式
[[ ] ]
[ ][ ][
]
twoway function y = f(x) if in , options
其中下划线为命令的最简写形式,即 twoway 可简写为 tw;方括号内的部分均可省略,即可省 略 “y =” 这个部分;f (x) 是这个命令的主体,可以是一般数学函数式,也可以是 Stata 内已有
绘制普通的数学、统计函数图形(与数据库数据无关) 用两组数据构成多个坐标点,考察坐标点的分布a 由一系列高度不等的纵向条纹或线段表示某一组数据分布情况b 用于显示多组数据间某些项目的比较情况,如均值、频数等 用点来描绘统计量的值,进而进行组与组间的比较 只用 5 个点c 对数据集做简单的总结,又因形状如箱子而得名 显示一个数据系列中各项的大小与其占比 将多个变量两两做散点图后类似矩阵元素般放入图中
均值(默认) 中位数 第 1 分位数 中位数 第 99 分位数 标准差 总和 计数 最大/小值 第一/最后值
0
0
2,000
3,000 Weight (lbs.)
4,000
Price
Fitted values
5,000
(5) 保留散点图并拟合回归直线
2,000
3,000 Weight (lbs.)
4,000
Price
Price
5,000
(6) 保留散点图并依次连接a(请对比 (2))
a此图无意义,但若为运动轨迹则有意义。若想从左到 右连接图中散点,则需先对数据排序(或加 sort 选项)
图 2: 散点图
1.3 histogram:直方图
命令格式
[
]
[ ][ ][
][
]
twoway histogram varname if in weight , options
其中 varname 指某一变量,因为画直方图只能对一个变量画。其余的只介绍 “分组” 选项 bin(),括号内是将数据等分的组数。其余的选项请 help histogram 来查看。
15,000
10,000
Price
5,000
0
1900
1910
1920 Year
1930
1940
(3) 去散点,保留连线
2,000
3,000 Weight (lbs.)
4,000
5,000
(4) 价格和车重的散点图
3
40
15,000
15,000
10,000
Price
10,000
5,000
5,000
命令范例及结果
1 // 直方图: histogram
2
3 sysuse auto, clear 4 twoway histogram price 5 histogram price, bin(20)
// Histogram Graph (1) // Histogram Graph (2)
1.0e−04 2.0e−04 3.0e−04 4.0e−04
节链接
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
图形名称
函数图 散点图 直方图 条形图 点统计图 箱线图
饼图 矩阵图
表 1: Stata 中常用图形
命令关键词
说明
twoway function
[twoway] scatter
[twoway] histogram graph bar graph dot graph box graph pie graph matrix
Stata 画图专题 (2):基础绘图命令
中南财经政法大学 STATA 协会 学术组 2013 年 3 月 12 日
俗话说 “一图胜千言”。图像的确比文字要来得形象、生动得多。在写论文时,我们要对数 据进行作图;在商务幻灯片中,我们也免不了用图片来表达某些结果,让人眼前一亮。而作为 一款统计软件,Stata 小巧但不简单,在作图上尤其是技术作图上这是它的强项;其绘制出的图 形精致,且达到了论文发表的水平,这也是用户舍弃其他软件包的原因之一。这一次,我们以 专题的形式,详细向大家介绍一下 Stata 的作图。
8 sysuse auto, clear 9 twoway scatter price weight 10 scatter price weight || lfit price weight 11 scatter price weight || line price weight 12 scatter price weight || line price weight, sort
−4
−2
0
2
4
x
(2) 正态密度函数
1
5
.5
0
y
y
0
−5
−.5
0
5
10
15
x
(3) exp(−x/6) · sin(x), x ∈ (0, 12.57)
0
.2
.4
.6
.8
1
x
(4) logit(x)
图 1: 函数图
1这些函数都非常有用,比如后来讲到 display, generate, egen 等命令、编程时都是会用到的。表 2 中其余的函 数类别我们之后会分别在日期/时间、随机模拟、矩阵、编程等专题中详细介绍。
编号
1 2 3 4 5 6 7 8
函数类别
数学函数
概率分布及密度函数
随机数函数 字符串函数
编程函数 日期及时间函数
选择时间间隔 矩阵函数
表 2: Stata 中的函数类别 帮助关键词 常用举例
math functions density functions
random-number functions
a一般用于判断两变量之间是否存在某种关联或总结坐标点的分布模式。包括线性相关、非线性相关和不相关等 b一般用横轴表示数据类型(组距自定),纵轴表示分布情况(如频数等) c这 5 个点分别为:下边缘、下分位数 (Q1)、中位数、上分位数 (Q3) 和上边缘。上下边缘非最大、最小值,而是排 除异常值后的最值。具体请查看统计学教科书或 http://baike.baidu.com/view/1376547.htm?fromId=1326550。箱 线图的构造见第 7 页图 6
• “堆叠”,即表示多个柱状图叠在一起(看累计总值及每组占比),命令是 stack。
其余的选项请 help graph bar 来查看。上述两行命令区别是第二行命令只是水平 (horizontal) 形式的条形图。
表 3: 描述统计命令 命令 含义
mean median
p1 p50 p99
sd sum count max/min first/last
// Twoway Function Graph (1) // Twoway Function Graph (2) // Twoway Function Graph (3) // Twoway Function Graph (4)
.4
10
8
.3
6
.2
y
y
4
.1
2
0
0
−2
−1
0
1
2
x
(1) y = x2 + 2 · x + 1, x ∈ (−2, 2)
1
的函数1(表 2 中列举了 Stata 中的函数类别,附录 A 的表 5 列举了常用数学函数。具体可输入 help function 来获取帮助)。由于这里的 y 和 x 都仅针对这个命令的,故不会影响 Stata 内 存中已存在的数据。这里的 [options] 是可选参数,具体请直接 help twoway function 来查看。 一般我们会用到 range(# #),即坐标横轴的取值范围,如 range(0 12.57) 表示 x ∈ (0, 12.57)。
[ ][ ][
][
]
graph hbar yvars if in weight , options
其中 yvars 是变量列表,值的大小由 y 轴来刻画;而条形图中 x 轴代表的是类别,其宽度都是 一样的。比如有两组数据:男生人数 45 人和女生人数 50 人,那么条形图的主要用途是对比两 组人的数量(y 轴值)。在命令中,yvars 除了要填多个变量,而且在变量列表前还需加上需对 比的统计量2。表 3 中列举了常用的一些。若想如实反映3,则命令为 (axis)。注意:这些统计 量需放置于变量列表 yvars 之前,且需要用英文括号括起来。
可选参数 [options] 需要讲两个:
• “分组”。前面说的画条形图需要先分组,那么分组的命令是 over(varname[, over_subopts]), 即按某一变量 varname 来分组;[over_subopts] 是次可选项,比如 sort(#) 表示 “按第 # 组的值排序后绘图”。最简单的形式4可以参看表 4;
3.0e−04
2.0e−04
Density
Density
Biblioteka Baidu
1.0e−04
0
0
5,000
10,000 Price
(1) 组数默认
15,000
0
图 3: 直方图
5,000
10,000 Price
(2) 分 20 组
15,000
4
1.4 graph bar:条形图
命令格式
[ ][ ][
][
]
graph bar yvars if in weight , options