本节书摘来自华章出版社《Stata统计分析与应用(第2版)》一书中的第3章,第3.3节,作者 周广肃,更多章节内容可以访问云栖社区“华章计算机”公众号查看
3.3 条形图、饼图和箱线图的绘制
条形图、饼图与箱线图也是较为基本的统计图形,本节将会利用zichan.dta数据讲解这三种图形的绘制。
3.3.1 条形图的绘制
条形图是用矩形的长度来表示相互独立的变量大小取值的统计图形,它与直方图虽看着相似,但是含义和用法却相差甚远。条形图主要有两种:一种是横向的条形图,另一种是纵向的条形图。
绘制条形图的基本命令语句为:
graph bar yvars [if] [in] [weight] [, options]
graph hbar yvars [if] [in] [weight] [, options]
在这两个命令语句中,第一个是用于绘制纵向条形图,第二个用于绘制横向条形图。yvar是将要绘制图形的变量,if是条件语句,in是范围语句,weight是权重语句。
在绘制条形图的过程中,需要指明所要展示的统计量,如果不指明统计量,则会默认显示均值(mean)统计量,绘制条形图可使用的统计量如表3.6所示。
下面着重讲述一下条形图的options选项的内容。
(1)stack选项
在绘制条形图时,默认采用并排形式,然而有时可将具有多个y变量的统计量上下堆积而形成堆积条形图。stack通常与percentage选项连用,这时纵轴的统计量默认是比例,总和通常为100%,即百分比堆积条形图。
(2)blabel选项
blabel选项有两个作用,一个是通过为条柱增添数值标签增加图形所显示的信息量,另一个是可以改变bar的名称和组合。blabel选项的命令语句如下:
blabel(what [, where_and_how])
其中what表示blabel选项定义的内容,详细内容显示在表3.7中,[, where_and_how]定义blabel选项的位置和显示方式,具体如表3.8所示。
例如,利用zichan.dta数据,进行条形图的绘制。此数据为根据中国某市历年统计年鉴得到的自来水产业资产构成数据(2000~2007年),其中year代表年份,current代表流动资产,solid代表固定资产,gross代表资产总额。完整的数据位于本书附带光盘data第3章zichan.dta工作文件中。
图3.12是运用zichan.dta数据文件中的数据绘制的流动资产current、固定资产solid和资产总额gross随时间变化的条形图,所有设置均使用默认设置。命令语句为:
graph bar current solid gross, over(year)
over(year)表示图形按时间year进行分组绘制。
为使图表的阅读性改观及突显主题,我们可以对图3.12进行一些改进:
将纵向条形图改成横向条形图。
为每个条柱增加标签,内容为条柱的高度,位置在条柱的右方。
在300000数值处画一条标识线。
重新输入绘制图形的命令如下:
graph hbar current solid gross, over(year) blabel(bar, position(outside))
yline(300000)
在这个命令语句中,“graph hbar”表示绘制横向条形图,“blabel(bar, position(outside))”表示给条柱添加标签,位置在条柱的右方,“yline(300000)”用于绘制一条标识线。绘制完成后的图形如图3.13所示。
为了更加清楚地看到资产的结构,我们也可以将条形图绘制成层叠的形式,命令如下:
graph bar current solid gross, over(year) blabel(bar, position(outside)) stack
这个命令与前面命令的最大不同就是加了stack选项,生成的堆积条形图如图3.14所示。
3.3.2 饼图的绘制
饼图是用圆形及圆内扇形的大小表示总体中各部分所占比例的统计图,通常用来表示各部分在总体中所占份额。绘制饼图的基本命令为:
graph pie varlist [if] [in] [weight] [, options]
graph pie varname [if] [in] [weight], over(varname) [options]
graph pie [if] [in] [weight], over(varname) [options]
这三个命令语句表达的基本含义是一致的,只是在饼图具体绘制时有所区别。varlist/varname表示将要绘制图形的变量,if是条件语句,in是范围语句,weight是权重语句,options选项的具体内容显示在表3.9中。
例如,运用zichan.dta数据文件中的数据绘制资产构成的饼图,所有设置均使用默认设置,需要输入的命令语句为:
graph pie current solid,by(year)
current、solid是饼图的变量,by(year)是将饼图按时间分类绘制。命令执行以后,将绘制出如图3.15所示的资产构成饼图。
默认的饼图不仅美观性较差,而且反映的信息也不是特别清楚,用户可以进行以下修饰和改进:
添加图形名称为“资产构成图”。
在每一个扇面上加上所占比例的标签。
将代表流动资产的扇面突出显示,且颜色设置为黄色。
重新输入绘制图形的命令如下:
graph pie current solid,plabel(_all percent, gap(9)) pie(1, explode
color(yellow)) title(资产构成图) by(year)
plabel(_all percent, gap(9))为每个扇面添加比例标签,同时设定了相对位置,pie(1, explode color(yellow))使得第一个扇面向外凸出,且颜色设定为黄色,“title(资产构成图)”命名了标题。改进后的饼图如图3.16所示。
3.3.3 箱线图的绘制
箱线图,顾名思义是由箱子和线段组成的图形,用一条线段的两端分别代表变量的最小值和最大值,中间一个箱子分别标明了第1个四分位数、中位数和第3个四分位数,因此一个箱线图是5个统计量的汇总。箱线图反映了数据的中心、分布、极端值的情况,所以在比较不同的数据集时较为常用。箱线图有两种:一种是纵向的箱线图,另一种是横向的箱线图。箱线图绘制的基本命令如下:
graph box yvars [if] [in] [weight] [, options]
graph hbox yvars [if] [in] [weight] [, options]
graph box用来绘制纵向箱线图,graph hbox用于绘制横向箱线图。yvars是将要绘制箱线图的变量,if是条件语句,in是范围语句,weight是权重语句。
例如,运用数据文件usaauto中的数据绘制价格price和重量weight的箱线图,所有设置均使用默认设置,需要输入的命令语句为:
graph box price weight
命令执行以后,将绘制出如图3.17所示的反映price和weight情况的箱线图。
我们可以进行以下修饰和改进:
按国产车和进口车分别显示这两个变量的信息。
将分组后x轴的组名分别命名为“国产车”和“进口车”。
重新输入绘制图形的命令如下:
graph box price weight,over(foreign, relabel(1"国产车" 2"进口车"))
“over(foreign, relabel(1 "国产车" 2 "进口车"))”即实现了按foreign变量分组,且将组命名,显示的结果如图3.18所示。