![Stata统计分析从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/76/47217076/b_47217076.jpg)
2.3 Stata制图简介
众所周知,图形是对数据分析结果以及其他综合分析的一种很好的展示方式。制图功能一直是Stata的强项,也是许多软件用户选择该软件进行数据分析的重要理由之一。经过Stata公司编程人员长期不懈的努力,制图功能在Stata 16.0版本中已经非常完善,比较以前的版本,不仅形成图形的能力得到增强,图形输出的外观和选择也得到了极大的改进。本节讲解Stata制图基本操作以及常用的几种图形的绘制,包括直方图、散点图、曲线标绘图、连线标绘图、箱图、饼图、条形图、点图等。
2.3.1 Stata制图基本操作
1.命令的语法格式
(1)整体命令的语法格式
graph-command(plot-command,plot-options)(plot-command,plot-options),…graph-options
其中的graph-command是用来定义图的类型的命令,plot-command是用来定义曲线类型的命令,不同的曲线之间用括号分隔开,曲线有自身的options选项,整个图形也有统一的options选项。
(2)标题与副标题的设置
设置标题的命令为:title()。用户在括号内输入标题名即可。
副标题的设置命令为:subtitle()。用户在括号内输入副标题名即可。
假如我们要把一幅图的标题设置为“案例结果”,副标题设置为“案例2.1结果”,则命令为:
title(案例结果) subtitle(案例2.1结果)
(3)为坐标轴命名
为横坐标轴命名的命令为:xtitle()。用户在括号内输入标题名即可。
为纵坐标轴命名的命令为:ytitle()。用户在括号内输入标题名即可。
(4)坐标轴刻度值的设置
设置横坐标轴刻度值的命令语法为:xtick(#1(#2) #3)。
设置纵坐标轴刻度值的命令语法为:ytick(#1(#2) #3)。
其中#1代表起始刻度,#3代表结束刻度,(#2)代表间隔刻度。比如ytick(500(50)900)表示纵坐标轴起始刻度为500,结束刻度为900,间隔刻度为50。
(5)坐标轴数值标签的设置
设置横坐标轴数值标签的命令语法为:xlabel(#1(#2) #3)。
设置纵坐标轴数值标签的命令语法为:ylabel(#1(#2) #3)。
其中#1代表起始刻度,#3代表结束刻度,(#2)代表间隔刻度。比如ylabel(500(100)900)表示为Y轴添加数值标签,取值为500~900,间距为100。
(6)坐标轴样式的设置
设置横坐标轴样式的命令为:xscale()。其中xscale(off)表示不使用横坐标轴。
设置纵坐标轴样式的命令为:yscale()。其中yscale(off)表示不使用纵坐标轴。
(7)图例的设置
设置图例的命令语法为:legend(label(# "text")…)。用户将图例的代号填入“#”处,将内容写在"text"中即可。比如legend(label(1 "上海") label(2 "深圳"))表示将图例代号为1的显示为上海,将图例代号为2的显示为深圳。
用户还可以设置图例所在的位置,命令为legend(position()),用户只需将位置所对应时刻的数字填入括号中即可,共有12个位置可供选择(对应钟表的12个时刻),比如我们想要把图例放置在钟表3点对应的位置,对应的命令为legend(position(3))。
(8)脚注的设置
设置脚注的命令语句为:note()。用户将脚注内容写在括号中即可。比如我们需要注明数据来源为公司内部数据,对应的命令为:note(数据来源:公司内部数据)。
(9)图形的保存与打开
保存图形的命令语法是:graph save [graphname] filename [,asis replace]。
graph save为基本命令,[graphname]为图形保存的名称,filename为保存的路径,[,asis replace]选项用来冻结图形,使其不能再被修改。
打开图形的命令的语法格式是:graph use filename。其中filename是文件保存的路径名称。
显示图形的命令的语法格式是:graph display [name] [,options]。其中name为图形的名称。
(10)图形的合并
合并图形的命令语法是:graph combine name [name...] [,options]。
2.菜单实现
Stata 制图也可以通过菜单来实现,在菜单栏单击“图形”,即可显示出如图2.27所示的可选项。通过该菜单Stata可以实现二维图(散点图、折线图等)、条形图、点图、饼图、直方图、箱线图、等高线图、散点图矩阵、分布图、平滑和密度、回归诊断图、时间序列图、面板数据折线图、生存分析图、ROC分析图、多元分析、质量控制等各种图形的绘制。比如我们单击“二维图(散点图、折线图等)”,即可出现如图2.28所示的对话框。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P82_17131.jpg?sign=1739546006-ptdyfqNIq0wzN58rLVIqLKNsXnk0cKbw-0-6073d8f365beec0bf604a533e87663d1)
图2.27 菜单栏“图形”选项
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P82_17132.jpg?sign=1739546006-q05Ty4u1qEuW7uAbx0895umbmdj20W5c-0-ec768b2e65e6124f1deef2e9fcd9d39c)
图2.28 “twoway-二维图”对话框
在“twoway-二维图”对话框中有8个选项卡。
· “绘图”选项卡供用户选择绘图类别和类型、Y变量、X变量,从而生成初步的图形。用户需要先单击“创建”按钮,然后在弹出的子对话框“图形1”中进行相应的设置。
· “if/in”选项卡供用户设置if选项和in选项,其中if选项用来设置条件表达式,in选项用来设置样本范围。
· “Y轴”“X轴”选项卡的功能是设置Y轴、X轴的相关内容,包括标题、主要刻度/标签属性、次要刻度/标签属性、轴线属性、轴刻度尺属性、参考线、是否隐藏轴、是否将轴放在图形的对面位置等。
· “标题”选项卡用于设置与标题相关的内容,主要包括标题的设置、副标题的设置、标注的设置、注释文字的设置等。
· “图例”选项卡用于设置与图例相关的内容,主要包括显示或隐藏图例、图例的组织/外观、图例的位置等内容。
· “整体”选项卡用于设置与总体图形相关的内容,包括整个图形的名称、大小设置、区域属性等内容。
· “By”选项卡用于设置分类输出图形,用户在该选项卡中指定是否给变量的每个唯一值绘制子图,并设置子图的组织、标题、区域、轴线等。
2.3.2 直方图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2F
直方图(Histogram)又称柱状图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。通过绘制直方图可以较为直观地传递有关数据的变化信息,使数据使用者能够较好地观察数据波动的状态,使数据决策者能够依据分析结果确定在什么地方需要集中力量改进工作。
直方图用到histogram命令,该命令的语法格式为:
histogram varname [if] [in] [weight] [,[continuous_opts | discrete_opts] options]
varname为变量,[if]为条件表达式,[in]用于设置样本范围,[weight]用于设置权重。continuous_opts为连续变量可用选项,discrete_opts为分类变量可用选项,options为连续、分类变量共用选项,如表2.8所示。
表2.8 continuous_opts、discrete_opts、options说明
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T83_172555.jpg?sign=1739546006-nAB6kcYXnCoftbMxVONUZZsEzXQ5gmv4-0-f492f48cce761a6f2e67e5e84fd5173d)
(续表)
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T84_172557.jpg?sign=1739546006-6jAHf4htpZQx6XZcqm15hbZjrIME4Xtt-0-23799d156834463b0466b69c8a04c967)
下面以“数据2F”数据文件为例进行介绍,在“数据2F”中设置了两个变量,分别是province和amount,如图2.29所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P84_17379.jpg?sign=1739546006-BBiRGEltjvzJO509XgAWUHZHOiUENEB0-0-21fa5a53c996a655aa92784b2fbb7504)
图2.29 “数据2F”中的数据内容
打开上述数据文件之后,在主界面的命令窗口中依次输入以下命令:histogram amount,frequency
本命令的含义是绘制amount变量的直方图,绘制结果如图2.30所示。
histogram amount,frequency title("案例结果")
本命令的含义是绘制amount变量的直方图,并给图形增加标题名“案例结果”,绘制结果如图2.31所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P85_17388.jpg?sign=1739546006-dZiGMDRgt7DrsRDpC2uJEo4zu9UUsXTp-0-ee57e23b6e5d92ccfdf7ada68755cf6c)
图2.30 直方图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P85_17389.jpg?sign=1739546006-1XYiV6zfReMrJqmNrQU8DR4k4wwWInWc-0-ab8b6284d476f915c1acf8e561929efa)
图2.31 直方图2
histogram amount,frequency title("案例结果")xlabel(0(50)600) ylabel(0(1)10)
本命令的含义是绘制amount变量的直方图,并给图形增加标题名“案例结果”,还要为X轴添加数值标签,取值为0~600,间距为50,为Y轴添加数值标签,取值为0~10,间距为1,绘制结果如图2.32所示。
histogram amount,frequency title("案例结果")xlabel(0(50)600) ylabel(0(1)10)ytick(0(0.5)10)
本命令的含义是绘制amount变量的直方图,并给图形增加标题名“案例结果”,还要为X轴添加数值标签,取值为0~600,间距为50,为Y轴添加数值标签,取值为0~10,间距为1,还要为Y轴添加刻度,取值为0~10,间距为0.5,绘制结果如图2.33所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P85_17390.jpg?sign=1739546006-7mMLwh4HvoydQ0BnWAp8qUdNXhsuT5pV-0-133000ce6bf5b2e07bf0aaedddb337a6)
图2.32 直方图3
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P85_17391.jpg?sign=1739546006-NAXojwIe6nYrG9nhokJk7modLxiCVeaN-0-a00f1d30601094408079cde9f03550f5)
图2.33 直方图4
histogram amount,frequency title("案例结果")xlabel(0(50)600) ylabel(0(1)10)ytick(0(0.5)10) start(10) width(25)
本命令的含义是绘制amount变量的直方图,并给图形增加标题名“案例结果”,还要对X轴添加数值标签,取值为0~600,间距为50,为Y轴添加数值标签,取值为0~10,间距为1,还要为Y轴添加刻度,取值为0~10,间距为0.5,然后使直方图的第1个直方条从10开始,每一个直方条的宽度为25,绘制结果如图2.34所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P86_17419.jpg?sign=1739546006-SGhvPe8gRnujz9W4uICfVscRNBTmW2IQ-0-025eb4c7f1675dbad603ba417def0e0b)
图2.34 直方图5
2.3.3 散点图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2G
作为对数据进行预处理的重要工具之一,散点图(Scatter Diagram)深受专家、学者们的喜爱。散点图的简要定义就是点在直角坐标系平面上的分布图。研究者对数据制作散点图的主要出发点是通过绘制该图来观察某变量随另一变量变化的大致趋势,据此可以探索数据之间的关联关系,甚至选择合适的函数对数据点进行拟合。
绘制散点图的命令为scatter,该命令的语法格式为:
[twoway] scatter varlist [if] [in] [weight] [,options]
[twoway] scatter表示绘制散点图,varlist是将要绘制散点图的变量列表,此处需要注意x轴变量要放置在y轴变量之后,[if]为条件表达式,[in]用于设置样本范围,[weight]用于设置权重。[,options]为可选项,有很多,常见的包括数据标记形状的设置、颜色的设置、大小的设置、散点标签的设置、分类输出散点图的设置,具体说明如下:
1.数据标记形状的设置
数据标记形状的设置通过msymbol()命令选项来实现,用户在括号中输入所需要的命令选项或代号缩写即可,常用的msymbol()命令选项如表2.9所示。
表2.9 常用的msymbol()命令选项
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T87_172564.jpg?sign=1739546006-TlNXMLyTf6Itubp5vQxlVaVpudx9gdaT-0-01ce5f362a8d5c12d791e8b839dd6d22)
2.数据标记颜色的设置
数据标记颜色的设置通过mcolor()命令选项来实现,用户在括号中输入所需要的命令选项或代号缩写即可,常用的mcolor()命令选项如表2.10所示。
表2.10 常用的mcolor()命令选项
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T87_172565.jpg?sign=1739546006-cVvRp7LTnDMBWDcDuvOAvvWlVbDvt4Pe-0-145bf28e0c547a5adb0ca18010554394)
3.数据标记大小的设置
数据标记大小的设置通过msize()命令选项来实现,用户将适当大小的数字输入括号中即可。比如要设置数据标记的大小为6号,则命令为:
msize(6)
4.散点标签的设置
散点标签的设置通过mlabel()和mlabposition()命令选项来实现,用户将标签的内容输入mlabel后的括号,将代表标签位置的数字输入mlabposition后面的括号即可。比如用户想要设置散点标签的内容为变量amount,标签位置在9点钟处,可使用如下命令:
mlabel(amount) mlabposition(9)
5.分类输出散点图的设置
如果在数据中存在分类变量,可以将数据分类以后再绘制散点图,所使用的命令为by(),用户在括号中填入分类变量即可。比如按照xueli变量分类绘图,可在绘图命令之后添加选项:
by(xueli)
下面以“数据2G”数据文件为例进行介绍,“数据2G”中设置了两个变量,分别是ab和mn,如图2.35所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P88_17823.jpg?sign=1739546006-4Egl0eRGY4H4LOrPv2YV1cmD7WBEE1Ct-0-d6ce7124201b979795d373e66a500d5c)
图2.35 “数据2G”中的数据内容
打开上述数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph twoway scatter ab mn
本命令的含义是绘制ab和mn两个变量的散点图,绘制结果如图2.36所示。
graph twoway scatter ab mn,title("案例结果") xlabel(68(2)92) ylabel(150(10)200)ytick(150(5)200)
本命令的含义是绘制ab和mn两个变量的散点图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为68~92,间距为2,为Y轴添加数值标签,取值为150~200,间距为10,为Y轴添加刻度,间距为5,绘制结果如图2.37所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P89_17831.jpg?sign=1739546006-dcVW8BKkkJu1cmThdzxuD4dfLHQ1ERb2-0-f3de6d2d9ecd8af43108231654c05f01)
图2.36 散点图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P89_17832.jpg?sign=1739546006-lu3M2J2C3rhwo3rZYlkSfZoTPeDk3IpU-0-4f06d29932db31f2a73e4832d1438cfd)
图2.37 散点图2
graph twoway scatter ab mn,title("案例结果") xlabel(68(2)92) ylabel(150(10)200)ytick(150(5)200) msymbol(D)
本命令的含义是绘制ab和mn两个变量的散点图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为68~92,间距为2,为Y轴添加数值标签,取值为150~200,间距为10,为Y轴添加刻度,间距为5,并且使散点图中散点标志的形状变为实心菱形,绘制结果如图2.38所示。
graph twoway scatter ab mn,title("案例结果") xlabel(68(2)92) ylabel(150(10)200)ytick(150(5)200) msymbol(D) mcolor(yellow)
本命令的含义是绘制ab和mn两个变量的散点图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为68~92,间距为2,为Y轴添加数值标签,取值为150~200,间距为10,为Y轴添加刻度,间距为5,并使散点图中散点标志的形状变为实心菱形,然后使散点标志的颜色变为黄色,绘制结果如图2.39所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P89_17833.jpg?sign=1739546006-95xO5qRq6AiCHZqLeUHzVLr3SyLIHyn6-0-ea126dd60f7d63ce06a932907805a90b)
图2.38 散点图3
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P89_17834.jpg?sign=1739546006-VFJrtcdDCBfPNHafs2OlC6Qq23oUtV12-0-e63603e5edc7f7a9a763c2cc0845e0cc)
图2.39 散点图4
2.3.4 曲线标绘图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2H
从形式上看,曲线标绘图与散点图的区别就是用一条线来替代散点标志,这样做可以更加清晰直观地看出数据走势,但却无法观察到每个散点的准确定位。从用途上看,曲线标绘图常用于时间序列分析的数据预处理,用来观察变量随时间的变化趋势。此外,曲线标绘图可以同时反映多个变量随时间的变化情况,所以曲线标绘图的应用范围非常广泛。
绘制曲线标绘图的命令的语法格式为:
[twoway] line varlist [if] [in] [,options]
varlist是将要绘制曲线标绘图的变量列表,此处需要注意x轴变量要放置在y轴变量之后,[if]为条件表达式,[in]用于设置样本范围。[,options]为可选项,散点图中的[,options]可选项,在曲线标绘图也大多适用,除此之外,曲线标绘图还可以对有关曲线样式进行设置,常用选项包括connect_options(连接样式的设置)、linepatternstyle(线条样式的设置)等。
1.连接样式的设置
用于设置连接样式的命令为connect(),用户在括号中填入样式代码或缩写即可,具体如表2.11所示。
表2.11 connect()命令括号中可填入的样式代码及缩写
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T90_172576.jpg?sign=1739546006-ARkl3DIruIom1RrPsGxL5HCghdK2kzJ0-0-f0895bca9f5c701f6a98f548d3c15794)
2.线条样式的设置
用于设置线条样式的命令为clpattern(),用户在括号中填入样式代码即可,具体如表2.12所示。
表2.12 clpattern()命令括号中可填入的样式代码
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T90_172577.jpg?sign=1739546006-i9z34yybzQilnJ80R5wNgZUN8IVlP8iY-0-16283318b7806b94e9ba35bac77a2172)
下面以“数据2H”数据文件为例介绍,数据中有3个变量,分别是year、shanghai、shenzhen,如图2.40所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P91_18072.jpg?sign=1739546006-v8mOXGlNtlMpUGaXfGf26XzZGbeBNWlm-0-a2855b8928e3db58108d3c49b1770dbb)
图2.40 “数据2H”中的数据内容
打开上述数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph twoway line shanghai shenzhen year
本命令的含义是绘制shanghai和shenzhen两个变量随年份变化的曲线标绘图,绘制结果如图2.41所示。
graph twoway line shanghai shenzhen year,title("案例结果") xlabel(2010(2)2020)ylabel(500(50)900) xtick(2010(1)2020)
本命令的含义是绘制shanghai和shenzhen两个变量随年份变化的曲线标绘图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为2010~2020,间距为1,为Y轴添加数值标签,取值为500~900,间距为10,为X轴添加刻度,间距为1,绘制结果如图2.42所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P91_18073.jpg?sign=1739546006-1uJRvxMHClK0oNVLpVnNgOvolJWxZIiJ-0-04a1507889e6075883a24099352a12c6)
图2.41 曲线标绘图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P91_18074.jpg?sign=1739546006-BKzNfjUP8MOan4dbEnewoJiXFVe3Fw6Q-0-27a5ad1574ccce623c4790792be489fc)
图2.42 曲线标绘图2
graph twoway line shanghai shenzhen year,title("案例结果") xlabel(2010(2)2020)ylabel(500(50)900) xtick(2010(1)2020) legend(label(1 "上海") label(2 "深圳"))
本命令的含义是绘制shanghai和shenzhen两个变量随年份变化的曲线标绘图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为2010~2020,间距为1,为Y轴添加数值标签,取值为500~900,间距为10,为X轴添加刻度,间距为1,同时以中文显示shanghai和shenzhen这两个变量的标签,从而更加清晰直观,绘制结果如图2.43所示。
graph twoway line shanghai shenzhen year,title("案例结果") xlabel(2010(2)2020)ylabel(500(50)900) xtick(2010(1)2020) legend(label(1 "上海") label(2 "深圳"))clpattern(solid dash)
本命令的含义是绘制shanghai和shenzhen两个变量随年份变化的曲线标绘图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为2010~2020,间距为1,为Y轴添加数值标签,取值为500~900,间距为10,为X轴添加刻度,间距为1,同时以中文显示shanghai和shenzhen这两个变量的标签,从而更加清晰直观,然后使深圳的曲线变为虚线,绘制结果如图2.44所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P92_18260.jpg?sign=1739546006-55Y5snQqNetiDL6hls60hrKblVbRVskC-0-95efb42f539d9caa1bbacf496f3ae156)
图2.43 曲线标绘图3
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P92_18261.jpg?sign=1739546006-frIbPGzhFGmy6oB364Nigt9pG9JmTWiQ-0-65b3c7e114f25f3d76bb2e3e95345d7f)
图2.44 曲线标绘图4
在上述命令中,solid代表实线,对应的是第1个因变量“上海”;dash代表虚线,对应的是第2个因变量“深圳”。线条样式与其对应的命令缩写如表2.13所示。
表2.13 线条样式与其对应的命令缩写
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T92_172589.jpg?sign=1739546006-0TdJnS73lChoOMnWe09jGngBHU0wv20O-0-50faf4c1c7b7faaf2986dd18b592f781)
2.3.5 连线标绘图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2H
在前面的章节中我们可以看到,曲线标绘图用一条线来代替散点标志,可以更加清晰直观地看出数据走势,但却无法观察到每个散点的准确定位。那么,有没有一种作图方式既可以满足观测数据走势的需要,又能实现每个散点的准确定位?Stata的连线标绘图制图方法就提供了解决这一问题的方法。
绘制连线标绘图的命令的语法格式为:
twoway connected varlist [if] [in] [weight] [,scatter_options]
varlist是将要绘制曲线标绘图的变量列表,[if]为条件表达式,[in]用于设置样本范围,[weight]用于设置权重,[,scatter_options]为可选项。
我们继续使用“数据2H”数据文件,打开该数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph twoway connected shanghai shenzhen year
本命令的含义是绘制shanghai、shenzhen两个变量随年份变化的连线标绘图,绘制结果如图2.45所示。
graph twoway connected shanghai shenzhen year,title("案例结果")xlabel(2010(1)2020) ylabel(500(100)900) ytick(500(50)900)
本命令的含义是绘制shanghai、shenzhen两个变量随年份变化的连线标绘图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为2010~2020,间距为1,为Y轴添加数值标签,取值为500~900,间距为100,为Y轴添加刻度,间距为50,绘制结果如图2.46所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P93_18270.jpg?sign=1739546006-2t6k6E648pz00e0vQtrEqwRbsVrPEtYD-0-26c1b531ec3969f2426350aaaeaa9364)
图2.45 连线标绘图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P93_18271.jpg?sign=1739546006-k9AIGZuTjqfntBf6KJVXMn9o1Z4sXDzd-0-bf99ba30b54028745445f2d23e178d18)
图2.46 连线标绘图2
graph twoway connected shanghai shenzhen year,title("案例结果")xlabel(2010(1)2020) ylabel(500(100)900) ytick(500(50)900) clpattern(dash)
本命令的含义是绘制shanghai、shenzhen两个变量随年份变化的连线标绘图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为2010~2020,间距为1,为Y轴添加数值标签,取值为500~900,间距为100,为Y轴添加刻度,间距为50,同时使“上海”的曲线变为虚线, 绘制结果如图2.47所示。
graph twoway connected shanghai shenzhen year,title("案例结果")xlabel(2010(1)2020) ylabel(500(100)900) ytick(500(50)900) clpattern(dash)msymbol(D)
本命令的含义是绘制shanghai、shenzhen两个变量随年份变化的连线标绘图,并给图形增加标题名“案例结果”,为X轴添加数值标签,取值为2010~2020,间距为1,为Y轴添加数值标签,取值为500~900,间距为100,为Y轴添加刻度,间距为50,同时使“上海”的曲线变为虚线,使连线标绘图中散点标志的形状变为实心菱形,绘制结果如图2.48所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P94_18298.jpg?sign=1739546006-rbirXiVHk2OjsJCiHuFGKNnXf8a6TJ3b-0-a46fb1eec7670d2a5fb995dbf89ae30a)
图2.47 连线标绘图3
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P94_18299.jpg?sign=1739546006-kbAICZWDDXdEVy4ASIH6Jd03G87zwBdK-0-40ee2963d653b50612535dbe535c534c)
图2.48 连线标绘图4
2.3.6 箱图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2I
箱图(Box-Plot)又称为盒须图、盒式图或箱线图,是一种用于显示一组数据分散情况的统计图。箱图很形象地分为中心、延伸以及分部状态的全部范围,提供了一种只用5个点总结数据集的方式,这5个点包括中点、Q1、Q3、分部状态的高位和低位。数据分析者通过绘制箱图不仅可以直观明了地识别数据中的异常值,还可以判断数据的偏态、尾重以及比较几批数据的形状。
绘制箱图的命令及其语法格式如下:
graph box yvars [if] [in] [weight] [,options]
graph hbox yvars [if] [in] [weight] [,options]
其中graph box用来绘制纵向箱图,graph hbox用于绘制横向箱图,yvars是将要绘制箱图的变量,[if]为条件表达式,[in]用于设置样本范围,[weight]用于设置权重。
下面使用“数据2I”数据文件为例进行说明,“数据2I”中有3个变量,分别是place、amount、grade,如图2.49所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P95_18308.jpg?sign=1739546006-mgMSyOKp6OYLnpHg7Oc6f3wzhZS5ln5q-0-4a65cd7d35ea5422dd17aa01c2baaed5)
图2.49 “数据2I”中的数据内容
打开上述数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph box amount
本命令的含义是绘制amount变量的箱图,绘制结果如图2.50所示。箱图把所有的数据分成了4部分,第1部分是从顶线到箱子的上部,这部分数据值在全体数据中排名前25%;第2部分是从箱子的上部到箱子中间的线,这部分数据值在全体数据中排名25%以下、50%以上;第3部分是从箱子中间的线到箱子的下部,这部分数据值在全体数据中排名50%以下、75%以上;第4部分是从箱子的底部到底线,这部分数据值在全体数据中排名后25%。顶线与底线的间距在一定程度上表示了数据的离散程度,间距越大就越离散。
graph box amount,over( grade)
本命令的含义是绘制amount变量的箱图,但是按照grade变量分别列出,绘制结果如图2.51所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P95_18309.jpg?sign=1739546006-83wJOgKzY9Y4891xQ8v30bcOt6AuRTQW-0-f6db842bd4386cb5a8e3dfb2b41d3378)
图2.50 箱图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P95_18310.jpg?sign=1739546006-XE1U03cUFEOtK8dpCloDFUPnZArjg3Ny-0-396b46b9ed79c2beec840d2aa6f4bbd1)
图2.51 箱图2
2.3.7 饼图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2J
饼图是数据分析中常见的一种经典图形,因其外形类似于圆饼而得名。在数据分析中,很多时候需要分析数据总体的各个组成部分的占比,我们可以通过各个部分与总额相除来计算,但这种数学比例的表示方法相对抽象。Stata 16.0提供了饼形制图工具,能够直接以图形的方式显示各个组成部分所占的比例,更为重要的是,由于采用图形的方式,因此更加形象直观。
下面介绍绘制饼图的命令。
1)饼图中的切片作为每个变量的总数或百分比,该命令的语法格式如下:
graph pie varlist [if] [in] [weight] [,options]
2)饼图中的切片作为over(varname )类别中的总数或百分比,该命令的语法格式如下:
graph pie varname [if] [in] [weight], over(varname) [options]
3)饼图中的切片作为over(varname )类别中的频数,该命令的语法格式如下:
graph pie [if] [in] [weight], over(varname) [options]
这3个命令表达的基本含义是一致的,只是在饼图具体绘制时有所区别。varlist/varname表示将要绘制图形的变量,[if]为条件表达式,[in]用于设置样本范围,[,options]为可选项,具体含义如表2.14所示。
表2.14 [,options]可选项及其含义
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T96_172603.jpg?sign=1739546006-so2Ji9Oz9SECSRfovYTvSVd2BKNP5U9c-0-e5f1a20e14b670903d96351220f7cf06)
以“数据2J”数据文件为例进行讲解,在“数据2J”中设置了4个变量,分别是province、amount2018、amount2019、amount2020,如图2.52所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P97_18534.jpg?sign=1739546006-fUTfMC4QEsF3Qm8zKC97WWNskQgDU3iM-0-d8d7010d61ba6996f5ec4e02ea9c3628)
图2.52 “数据2J”的数据内容
打开上述数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph pie amount2018 amount2019 amount2020
本命令的含义是绘制amount2018、amount2019、amount2020三个变量的饼图,绘制结果如图2.53所示。
graph pie amount2018 amount2019 amount2020,pie(1,explode) pie(2,color(yellow))plabel(1 percent,gap(20)) plabel(2 percent,gap(20))
本命令的含义是绘制amount2018、amount2019、amount2020三个变量的饼图。要突出显示amount2018的占比,把amount2019的切片颜色改为黄色,给amount2018和amount2019的切片在距中心20个相对半径单位的位置处加上百分比标签,绘制结果如图2.54所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P97_18535.jpg?sign=1739546006-JBzWzZABwSFBYKf2YSbQPlqJr1rq0iNL-0-3e3e2655f6a9deb4c2d3ff9f3c005f1f)
图2.53 饼图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P97_18536.jpg?sign=1739546006-RC9cl59HwaclMJcMRnZ8b32eUExLPeBZ-0-18785a410627c0a12b17b295b99f1f6b)
图2.54 饼图2
graph pie amount2018 amount2019 amount2020,pie(1,explode) pie(2,color(yellow))plabel(1 percent,gap(20)) plabel(2 percent,gap(20)) by( province)
本命令的含义是绘制amount2018、amount2019、amount2020三个变量的饼图。要突出显示amount2018的占比,把amount2019的切片颜色改为黄色,给amount2018和amount2019的切片在距中心20个相对半径单位的位置处加上百分比标签,并按province变量分别列出,绘制结果如图2.55所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P98_18565.jpg?sign=1739546006-x7HlXXDhzm41D0Hswx3w2Ns4aJ3q2bLH-0-c2f61e1aaebf06294b80536a220c6681)
图2.55 饼图3
2.3.8 条形图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2K
相对于前面提到的箱图,条形图(Bar Chart)本身所包含的信息相对较少,但是它仍然为平均数、中位数、合计数或计数等多种概要统计提供了简单又多样化的展示,所以条形图也深受研究者的喜爱,经常出现在研究者的论文或者调查报告中。
下面介绍绘制条形图的基本命令。
1)绘制纵向条形图的命令及其语法格式:
graph bar yvars [if] [in] [weight] [,options]
2)绘制横向条形图的命令及其语法格式:
graph hbar yvars [if] [in] [weight] [,options]
在命令中,[if] 为条件表达式,[in]用于设置样本范围。
yvar是将要绘制图形的变量,可以是变量列表的值:(asis) varlist,也可以是变量列表值的百分比(percent) [varlist],或变量列表值的计数(count) [varlist],还可以是变量名或变量列表的指定统计量:
[(stat)] varname [[(stat)]…]
[(stat)] varlist [[(stat)]…]
[(stat)] [name=]varname […] [[(stat)]…]
默认显示均值(mean)统计量,绘制条形图常用的统计量如表2.15所示。
表2.15 绘制条形图常用的统计量
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T99_172607.jpg?sign=1739546006-vOkxqk0RIXiyRV4qdm0Lclvwdu0THx2A-0-2b19851a55056c08d019f2c68abca7aa)
[,options]包括6大类,每一个大类又有一些子类,常用的可选项如表2.16所示。
表2.16 常用的可选项具体选项
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-T99_172608.jpg?sign=1739546006-GZVPvDMX2kGq4mcMBZEsex1gDOce0GIZ-0-3923c2ebde4aacb781fab317cbb033e0)
下面以“数据2K”数据文件为例进行说明,数据中有3个变量,分别是group、amount、people,如图2.56所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P100_19030.jpg?sign=1739546006-yj95KNGSlFlJy9XadrXV0UxLf7l4NBfn-0-9ddd60ef0eaeff0304e5be0b008feb69)
图2.56 “数据2K”中的数据内容
打开上述数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph bar amount,over(group)
本命令的含义是绘制变量amount的条形图,以group变量作为分组变量,绘制结果如图2.57所示。
graph bar amount,over(group) title("案例结果") ylabel(1000(1000)7000)ytick(1000(500)7000)
本命令的含义是绘制变量amount的条形图,以group变量作为分组变量,并给图形增加标题名“案例结果”,为Y轴添加数值标签,取值为1000~7000,间距为1000,为Y轴添加刻度,间距为500,绘制结果如图2.58所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P100_19031.jpg?sign=1739546006-fFDVMOGbTXccpujTuyO7xbCPd62bDwKr-0-cfd2b939f46571ea5bb358f60e721ef0)
图2.57 条形图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P100_19032.jpg?sign=1739546006-JHNsGMWA8ThjPkv2FIXyzXeAMctmE6RT-0-9800001e610845eaf47c881a7682bc65)
图2.58 条形图2
graph bar amount people,over(group) title("案例结果") ylabel(1000(1000)7000)ytick(1000(500)7000)
本命令的含义是绘制变量amount、people的条形图,以group变量作为分组变量,并给图形增加标题名“案例结果”,为Y轴添加数值标签,取值为1000~7000,间距为1000,为Y轴添加刻度,间距为500,绘制结果如图2.59所示。
graph bar(median) amount(median) people,over(group) title("案例结果")ylabel(1000(1000)7000) ytick(1000(500)7000)
本命令的含义是绘制变量amount、people的条形图,使用的统计量不再是变量amount、people的均值,而是它们的中位数,以group变量作为分组变量,并给图形增加标题名“案例结果”,为Y轴添加数值标签,取值为1000~7000,间距为1000,为Y轴添加刻度,间距为500,绘制结果如图2.60所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P101_19061.jpg?sign=1739546006-wwAtfxCpGhaVifNidlLGX5x9PIvWt33h-0-09da4d424d451b01fa5303d023a862b3)
图2.59 条形图3
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P101_172616.jpg?sign=1739546006-qxtzP20YhogHZpgkjudJB46iSCbuoFa4-0-349ef3e23fc28bca04de43400957baa0)
图2.60 条形图3
2.3.9 点图
下载资源:\video\第2章\…
下载资源:\sample\第2章\数据2K
点图(Dot Plot)的功能与作用与前面提到的条形图类似,都是用来直观地比较一个或者多个变量的概要统计情况。
绘制点图的命令的语法格式为:
graph dot yvars [if] [in] [weight] [,options]
下面继续沿用“数据2K”数据文件为例,打开该数据文件之后,在主界面的命令窗口中依次输入以下命令:
graph dot amount people,over(group)
本命令的含义是绘制amount和people两个变量的点图,并以group为分组变量,绘制结果如图2.61所示。
graph dot amount people,over(group) title("案例结果")
本命令的含义是绘制amount和people两个变量的点图,并以group为分组变量,给图形增加标题名“案例结果”,绘制结果如图2.62所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P102_19216.jpg?sign=1739546006-NX2dnwpiBxpV5K4HnPvtv6UVR8uJ7wIw-0-7965b0c31b55f88b9ed7aa34b6e73143)
图2.61 点图1
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P102_19217.jpg?sign=1739546006-CN3BLLMp8DBM53ZuvyR87hbrCM39sGVf-0-f789de9573362575ad6d481f9fe6e699)
图2.62 点图2
graph dot amount people,over(group) title("案例结果") marker(1,msymbol(D))marker(2,msymbol(T))
本命令的含义是绘制amount和people两个变量的点图,并以group为分组变量,给图形增加标题“案例结果”,使图中amount变量散点标志的形状变为实心菱形,使图中people变量散点标志的形状变为实心三角,绘制结果如图2.63所示。
![](https://epubservercos.yuewen.com/B8B4B0/26581404709192306/epubprivate/OEBPS/Images/Figure-P102_19218.jpg?sign=1739546006-A0PimfXR9yQDsxcMXFxP5OR6IrUCFNCZ-0-47d863be307c3bb41b2bafe1dc756f25)
图2.63 点图3