Stata绘图基本知识介绍2014年5月19日Stata绘图基本知识Stata的绘图主要包括两个部分二维绘图命令族(平面绘图)非二维绘图命令族(三维绘图:立体绘图)Stata的制图引擎提供了一整套制图工具与选项。不同目的、不同水平的用户都可以自由地选择自己需要的制图工具Stata提供了包括广泛图形库的一系列图形类型供用户使用。其中主要的图形类型有:方图、扇形图、条形图、散点图、直线图以及数据拟合图本次主要介绍绘制散点图散点显示选项、散点标签选项、连线选项、振荡选项二维绘图选项坐标轴尺度选项、坐标轴刻度选项、坐标轴标题选项、轴线选择选项、scale选项的设定。绘制曲线标绘图和连线标绘图绘制拟合图形(一次拟合图形和二次拟合图形)绘制条形图绘制箱线图具体例题涉及的知识点例1绘制散点图的基本语法[twoway]scattervarlist[if][in][weight][,option]以下三个命令是等价的graphtwowayscatter……twowayscatter……scatter……connect(1)表明以直线的方式连接相邻的两个点;msymbol(i)表明散点的显示方式为“看不见”,如果我们将括号中的i改为O,那么这个选项的意思就是以“黑圈”的方式显示。坐标轴刻度选项label设定主要刻度和刻度标识tick仅设定主要刻度mlabel设定次要刻度和标识mtick仅设定次要刻度rule的设定:最常见的是##和###(#起固定作用)##表示#个完美的刻度,比如设定#5就是选择5个值;如果设定ylabel(#5),那么y轴上大概有5个刻度;如果设定ymtick(#10),则表示每两个主刻度间大概有10个小刻度grid和nogrid选项的设定(是否增加网格线的设定)该选项用于设定是否在绘制图形的同时做出网格线,比如如果设定ylabel(,nogrid),则在y轴方向的网格线将消失如果设定xlabel(,grid),则stata将绘制x轴方向的网格线例2scattery1varxvarscattery1vary2varxvar如果命令后跟着两个以上的变量,那么Stata会将最后一个以外的变量作为y轴变量,而将最后一个变当成x轴变量。散点显示选项(marker_options)1.散点的形状msymbol(symbolstylelist)O表示圆圈,D表示钻石形,X表示X号输入graphquerysymbolstyle可以查找完整的symbolstyles清单2.散点的颜色mcolor(colorstylelist)green表示绿色,white表示白色,blue表示蓝色输入graphquerycolorstyle可以查找完整的colorstyles清单3.散点的大小msize(markersizestylelist)输入graphquerymarkersizestyle可以查找完整的markersizestyles清单4.散点的整体设定默认情况下,Stata会为第一个散点图选定p1,为第二个散点图选定p2scattery1vary2varxvarscattery1vary2varxvar,mstyle(p1p2)默认情况下,Stata会为第一个散点图选定p1,为第二个散点图选定p2箱线图箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。在各种领域也经常被使用,常见于品质管理。利用箱线图可以观察数据分布的范围、中心位置和对称性等特征,还可以进行多组数据分布的比较箱线图的绘图命令绘制纵向图graphboxyvars[if][in][weight][,options]绘制横向图graphhboxyvars[if][in][weight][,options]over()设定分组变量,变量可以是数值型或者字符型变量,可以设置多达3个的分组变量。sort()用于排序,sort(1)表明按照第一个分组变量排序。散点标签选项例3选项mlabel(varname)用于设定标签变量;选项mlabposition(clockposstyle)和mlabvposition(varname)用于设定标签的位置,它们之间是可以相互替代的;mlabposition(clockposstyle)设定一个常数应用到所有的点,比如设定mlabposition(3)就是所有的点的标签都位于正右方(即三点钟方向);mlabvposition(varname)设定一个变量指示每个变量的标签的方向,这个变量的取值应当在0~12之间;如果两个选项都没有设定,那么默认情况就是mlabposition(3);两种方法做绘图区域的改变,一种是利用xscale(range())指定作图的区域,另一种则是使用plotregion(margin())来解决作图区域微小的表动,后者对于解决微小的变动更加合适。将刻度取对数可以直接使用xscale(log)例4振荡选项(jitter_options)的设定一旦设定了振荡选项jitter(#),scatter会在绘图前向数据中增加白噪声,选项中的“#”用来指定一个数字,表明振荡的程度占绘图区域的百分比。例5逆向尺度就是正常的坐标从小到大改为从大到小的一个镜像,使用的命令就是yscale(rev)scale(0ff)表示完全关掉坐标;scale(noline)表示仅仅去掉坐标线而保留刻度;比如:把y轴去掉使用的命令是yscale(off)把y轴坐标线去掉使用的命令是yscale(noline)gmin命令表示在最小值处增加网格线gmax命令表示在最大值处增加网格线例6by选项的设定by的依据是分类变量,比如性别、民族、国内国外等,by选项的语法为:by(varlist[,byopts])选项total表示除了对每一个组别分别作图外,还要添加一个含有全部样本的图形;选项rows(#)和cols(#)是相互替代的,他们的意思是设定所有图形共排列#行或者#列,两个选项只能设定一个;cols(1)设定图例采用纵向的方式显示rows(1)设定图例采用水平的方式显示holes(numlist)用来设定留白的位置;legend([contents][location])图例选项图例的设置共包括两部分内容:图例的内容和图例的位置title标题选项选项position(clockposstyle)和ring(ringposstyle)用于设定图例的位置,默认情况下是位于作图区域的正下方;position()依据十二点钟的方向设定图例在作图区域的方向;选项ring()用于设定图例距作图区域的距离,ring(0)是内圈,ring(k)是外圈。当ring(k)的取值为0时,文本位于作图区域内,当k大于0时,文本在作图区域之外,k越大,距离作图区域越远。以下三个命令是等价的scattery1vary2varxvarscattery1varxvar||y2varxvar(scattery1varxvar)(scattery2varxvar)不同的命令之间以“||”为分隔符或者用“()”括起来可以将所绘制的图形重叠在一个图形文件中。scatter绘图还可以与其他类型二维制图命令放在一起,绘制重叠的复合图形,比如可以是如下形式的命令:twoway(scatter…)(line……)(lfit……)……上述命令也可以等价地写成:scatter……||line……||lfit……||……轴线选择选项yaxis(#[#…])和xaxis(#[#…])用来设定使用的是哪一个坐标,其中#取值为1到9,默认设置是yaxis(1)和xaxis(1);最常用的是对于y轴的选择,第一个y轴出现在图形的左侧,第二个y轴出现在图形的右侧,而设定yaxis(12)将允许用户拥有两个相同的轴线。一般来说,当绘制超过两个y轴变量时,比如:scattery1y2x或者等价的:twoway(scattery1x)(scattery2x)这两个图形将共用同一个y轴和x轴;如果要将它们的y轴分开标示,那么就需要轴线选择选项进行设定。例7连线选项connect(connectstyle)决定了是否以及如何将相邻的两点连接起来,如果不连接,就相当于设定了(connect(i)),这也正是scatter散点图默认的情况:如果以直线连接,就相当于设定了(connect(l))。例8绘制标绘图和拟合图绘制一次拟合图形twowaylfityvarxvar[if][in][weight][,option]绘制二次拟合图twowayqfityvarxvar[if][in][weight][,option]绘制lowess拟合图形twowaylowessyvarxvar[if][in][,option]注:命令lowess和graphtwowaylowess可实现一种被称做“lowess修匀”的非参数拟合图形,具有简洁的优点,并遵循graphtwoway这一族命令的习惯语法。置信区间估计和曲线拟合例9Stata可以绘制的条形图种类繁多,既显示了条形图的广泛用途,也说明了Stata制图功能的强大。Stata绘制条形图的命令是:绘制纵向条形图graphbaryvars[if][in][weight][,options]绘制横向条形图graphhbaryvars[if][in][weight][,options]绘制条形图谢谢!!