STATA绘图:散点图(一)

本文介绍了如何使用Stata进行散点图的基础和进阶绘制,包括命令scatter、twowayscatter,以及散点形状、大小、颜色的设置。此外,还涉及散点标签、连线设置,以及多维图形和坐标轴的定制,旨在提升数据可视化的效果和实用性。
摘要由CSDN通过智能技术生成

代码数据(此数据均为随机生成,仅用于本次代码协作演示,不具备任何实用研究性)

idchinesemath englishStatisticslv
174830670
2372322141
3632537710
4884879160
5959753540
6752416151
795240801
8828527290
9863365601
1058529940
11885179271
12779977710
13439910101
1467678851
15612085371
1616611571
17225029810
183868711
193481450
20231458140
2141596600
22737327500
23157681201
24498931491
2582841910
26162595450
27422996201
28424536851
29619454331
309487441001

一、基础命令

scatter yvar1 yvar2 xvar   //yvar1和yvar2分别表示y轴的两个不同变量,xvar表示x轴变量

(scatter yvar1 xvar) (scatter yvar2 xvar) 

scatter yvar1 xvar || yvar2 xvar  //符号"()"和"||"均表示两个不同的图形重叠呈现在同一张图

代码示例:

scatter chinese math id

注:也可用graph twoway yvar1 yvar2 xvar或twoway yvar1 yvar2 xvar //效果与上述代码相同;

二、进阶命令

1.散点设置

(1)散点的形状

        使用基础命令所绘制出的散点均为实心圆,若需要根据我们的需求设定不同的散点形状,需要进一步的命令指令,使用到的关键命令为msymbol(),()内为设定散点的具体形状,所常用代码均位于下图:

代码示例:

twoway scatter chinese math id,msymbol(S x)

(2)散点的大小

        在进一步的绘图中,根据实际的需要,可能会对散点的大小进行控制,所使用的关键命令是msize(),()内规定使用圆点的大小,可键入命令graph query markersizestyle获取所有尺寸大小名称,如下所示(最小尺寸是vtiny,最大尺寸是ehuge):

 代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium)

 (3)整体颜色

        为保证所绘制图形的直观性、美观性和实用性,对所绘制散点原图内的不同分类散点进行颜色区分,所使用代码命令为mcolor(colorstyle),其中colorstyle为规定具体所使用的颜色指令,可采用代码graph query colorstyle获取该指令下的所有颜色,进一步的可采用palette color colorstyle进一步的查看所要调用的颜色。

代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink)

 2.散点标签和连线设置

(1)散点标签

        通过增加散点标签说明散点所表示的文本信息,一般常用的标签选项有确定标签变量(mlabel)、标签位置(mlabposition)、标签大小(mlabsize)、标签颜色(mlabcolor)、标签角度(mlabangle),以下通过代码具体展示常用标签代码的用法。

标签确定代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium)  mcolor(mint pink) mlabel(S)  //mlabel内为需设定的标签变量

标签角度代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink) mlabel(S) mlabangle(45) 
//mlabangle(45)表示设定标签倾斜45°,且mlabangle中设定为horizontal表示默认水平

标签位置代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink) mlabel(S) mlabangle(45) mlabpos(7) 
//mlabpos(7)表示将所有标签移动至7点钟方向,mlabpos内为1-12数字,对应的为时钟方向

当某些特殊的观测值需要单独说明标签位置,需要使用mlabvposition(varname),示例:

g pos=3 //生成常数变量,赋值为3
replace pos=12 if chinese>80 //将符合特定条件的观测值进行替换
twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink) mlabel(chinese) mlabangle(45) mlabv(pos) 
//mlabv(pos)表示chinese>80的标签在12点钟方向,小于80的在3点钟方向

        注:标签角度和标签位置的理解较为接近,标签角度mlabangle表示的是标签符号和水平方向的夹角度数,变得为标签符号本身的方向,给定多少范围,标签符号倾斜多少度;而标签位置表示的是标签符号本身仍为水平方向,倾斜度不发生变化,变得是标签符号和散点间的位置方向

(2)连线设置

        为了更加清晰的观察散点图中的变化趋势,需要将各个散点连接起来,常用到的散点连接代码有connect(connectstyle)sort[(varlist)]lpattern(linepatternstyle),演示如下:

连线方式代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink) mlabel(chinese) mlabangle(45) mlabpos(7) connect(l l) 
//connect(l l)表示对chinese和math进行直线连接,是最常用的连线方式,i默认为无连接

 注:sort选项和connect选项同时出现,一般sort适用于x轴变量,使所绘制图形有序。

连线类型代码示例:

twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink) mlabel(chinese) mlabangle(45) mlabpos(7) connect(l l)  lpattern(shortdash_dot dash) //lpattern(shortdash_dot dash)表示对chinese和math分别采用短虚线后接着圆点和虚线两种方式绘制

三、其他

1.多维图形绘制

        对于在一般的图形绘制中,可能会在散点图中同时观察拟合曲线、曲线图等多个复合图形时,可采用如下示例代码:

scatter chinese math id || lfit chinese id || lfit math id

scatter chinese math id || line chinese id || line math id

注:这里的散点图曲线图和散点图上加连线的操作想法类似

twoway scatter chinese math id,msymbol(S x) msize(tiny medium) mcolor(mint pink) mlabel(chinese) mlabangle(45) mlabpos(7) connect(l l)  lpattern(shortdash_dot dash) || lfit chinese id || lfit math id

 2.坐标轴等设置

        一般对坐标轴的修改包括xy轴(标题、刻度、颜色、标题距离等)、xy轴标题、主标题、副标题,以及注释、说明文字等。此处仅有坐标轴的标题和标签使用作一说明,后续会在不同类型图形代码中介绍。

twoway scatter chinese math id,xtitle("学生") ytitle("成绩") //修改x轴和y轴标题

twoway scatter chinese math id,legend(label(1 "文学") label(2 "数学")) xtitle("学生") ytitle("成绩") 
//修改变量标签,修改x轴和y轴标题

        最后,图形的世界千变万化,愿我们都能游刃有余,欢迎大家交流,共同学习进步! 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值