绘制散点图
[twoway] scatter varlist [if] [in] [weight] [,options]
实际上以下三种形式都可以被识别:
graph twoway scatter...
twoway scatter...
scatter...
若命令后紧跟两个变量,默认第一个变量为y轴变量(因变量),第二个变量作为x轴变量(自变量);若不只有两个变量,除最后一个(自变量)外,其他为因变量。
scatter y1var xvar
scatter y1var y2var xvar
或scatter y1var xvar || y2var xvar
或(scatter y1var xvar) (scatter y2var xvar)
scatter绘图还可以与其他类型二维绘图放在一起,绘制复合图形
scatter yvar xvar || line yvar xvar || lfit yvar xvar
twoway (Scatter yvar xvar) (line yvar xvar) (lfit yvar xvar)
*其他绘图类型
line 曲线标绘图
lfit 一维拟合曲线
connected 连线标绘图
qfit 二次拟合曲线
dot 二维点标绘图
tsline 时间序列标绘图
tsrline 时间序列全距图
scatter命令选项分类
scatter yvar xvar, ms( ) //括号内填充各种形状
缩写 |
说明 |
缩写 |
说明 |
O |
圆圈 |
T |
三角形 |
D |
钻石 |
o |
小圆点 |
x |
小加号 |
+ |
加号 |
Oh |
空心圆点 |
X |
X号 |
i |
无显示符号 |
scatter wage educ, connect(1)
//connect(1) 以直线的方式链接两个相邻的点
scatter wage educ, connect(1) msymbol(i)
//不显示散点 散点形状可简写为ms()
//O圆圈 T三角形 D钻石型 +加号 dh空心小钻石 th空心小三角形
scatter wage educ, connect(1) msymbol(dh)
2.散点的颜色
scatter yvar xvar, mc( ) //括号内填充各种颜色
颜色选项 |
含义 |
颜色选项 |
含义 |
gs0 |
黑色 |
“###” |
RGB数值 |
gs1 |
灰色 |
“####” |
CMYK数值 |
... |
渐进于白色的灰色 |
backgroud or bg |
背景色 |
gs16 |
白色 |
foregroud or bg |
前景色 |
brown |
褐色 |
none |
透明色 |
scatter wage educ, msymbol(dh) mcolor(ebg)
*mcolor散点颜色 pink粉色 purple紫色 sand黄灰色 ebg背景色 erose玫瑰色 none看不到
*### RGB数值 #### CMYK数值
scatter wage exper educ, msymbol(O X p) mcolor(green blue black) msize(medium medium small)
//表示三个图形使用形状 颜色 大小各不相同 palette color red black*palette调色盘 对比两种颜色的情况
graph query colorstyle //得到一份颜色清单
Palette color colorstyle [,scheme(schemename)]
//用调色盘命令查看某一种颜色的情况
Palette color colorstyle colorstyle [,scheme(schemename)]
//也可以用来对比两种颜色的情况
Graph query colorstyle
//得到一份完整的颜色清单
scatter wage exper educ, msymbol(O X p) mcolor(green blue black)
//设置散点形状和颜色
3.散点的大小
scatter wage exper educ, mcolor(green blue black) msize(medium medium small)
//设置散点颜色和大小
graph query markersizestyle //得到一份散点大小清单
散点大小 |
含义 |
散点大小 |
含义 |
vtiny |
最小 |
medlarge |
|
tiny |
large |
依次增大 |
|
vsmall |
vlarge |
||
small |
... |
huge |
... |
medsmall |
vhuge |
||
medium |
依次增大 |
ehuge |
最大 |
4.散点的整体设置
scatter y1var y2var xvar, mstyle(p1 p3) //绘制两个散点图,分别以第一样式和第三样式绘制
//p1-p15设定散点图整体样式;p1box-p15box设定箱线图整体样式;p1dot-p15dot设定点图整体样式
scatter y1var y2var xvar, mstyle(p1 p3) mcolor(.green)
//如果同时设定了整体样式和散点大小、形状、颜色,后者会覆盖整体样式
scatter wage exper educ, mstyle(p5 p4)
//散点图的整体样式p1~p15
//mstyle(p5 p4)表示为第一个散点图选定p5样式 为第二个散点图选定p4样式
graph export p301.png,replace
//表示将刚刚绘制的图形保存成p301.png 其中301是名称 .png是类型 方便插入到文档中
5.散点的标签选项
scatter yvar xvar , [,options]
选项名称 |
含义 |
mlabel(varname) |
确定标签变量 |
mlabelstyle(Markerlabelstyle) |
标签整体样式 |
mlabposition(varname) |
标签位置 |
mlabvposition(varname) |
另一种标签的方法 |
mlabangle(anglestyle) |
标签的角度 |
mlabsize(textsizestyle) |
标签的大小 |
mlabcolor(colorstyle) |
标签的颜色 |
mlabtextstyle(textstyle) |
标签文字的整体样式 |
scatter mpg weight, [,options] //连线选项的设定
scatter mpg weight, connect (connectstyle) //设定如何连接相邻的两点
scatter mpg weight, sort[(varlist)] //在连接之前首先对x轴变量进行排序
scatter mpg weight, cmissing({y|n}....) //如何对应缺失值
scatter mpg weight, lcolor(colorstyle) //连线的颜色
scatter mpg weight, lwidth(linewidthstyle) //连线的宽度
scatter mpg weight, lstyle(linestyle) //连线的整体样式
连接类型 |
缩写 |
含义 |
none |
i |
不连接 |
direct |
l |
以直线连接 |
stairstep |
J |
先水平后垂直 |
ascending |
L |
只有当后一点大于前一点时才进行直线连接 |
scatter mpg weight, jitter(7) //震荡选项的设定,表明对散点图震荡的程度相当于整个绘图区域的7%
6.二维绘图选项
坐标轴尺度设置 |
含义 |
yscale(axis_suboptions)——ysc |
设定y轴 |
xscale(axis_suboptions)——xsc |
设定x轴 |
tscale(axis_suboptions) |
设定时间轴 |
2.坐标轴尺度子选项
子选项 |
含义 |
axis(#) |
选择要修改的坐标,1-9之间 |
[no]log |
使用对数坐标 |
[no]reverse——rev |
使用逆向坐标,从大到小 |
noline |
不显示坐标线 |
lstyle(linestyle) |
坐标线的整体类型 |
lcolor(colorstyle) |
坐标线的颜色 |
titlegap(relativesize)——titleg |
坐标轴标题和刻度之间的距离 |
lwidth(linewidthstyle) |
坐标线的宽度 |
lpattern(linelpattern) |
坐标线的类型(实线、虚线) |
//yscale( )和xscale( )可以简写为ysc( )和xsc( )
//子选项range( )可以简写为r( )
twoway (scatter...) ..., ysc(r(0 10) titleg(1))
//等价于Twoway (scatter...) ..., ysc(r(0 10)) ysc(titleg(1))
twoway (scatter...) ..., ysc(r(0 10)) ysc(titleg(1)) ysc(titleg(2))
//可以重复设定,但以最后的设定为主
scatter yvar xvar, ysc(r(0)) //y轴的数值范围是1-100,而我们希望将范围延伸至0-100
scatter yvar xvar, ysc(r(0 105)) //y轴的数值范围是1-100,而我们希望将范围延伸至0-105
值得注意的是:如果希望拓展坐标轴的范围,就可以将要包括的点包括进range();如果设定范围小于默认范围,则坐标轴的范围不会改变。因此对于一个默认范围是0-100的散点图,以下命令不会改变范围,需要使用if语句。
scatter yvar xvar, ysc(r(10 50))
scatter yvar xvar if xvar >=10 & xvar<=50
scatter lexp gnppc, xscale(log) //x轴使用对数后的尺度
scatter mpg weight, yscale(rev) //y轴使用逆向坐标
scatter mpg weight, yscale(off) //关闭所有与y轴相关的选项
3.坐标轴刻度选项
scatter mpg weight, ylabel(#5) xlabel(#5)
//表示x轴大约有五个刻度,y轴大约有五个刻度,显示刻度标识
scatter mpg weight, ylabel(10 (5) 45) xlabel(1500 2000 3000 4000 5000)
//y轴刻度从10开始到45结束,步长为5;x轴刻度分别为所示
scatter mpg weight, ytick(#10) xtick(#15)
//只要求刻度,不要求标识数值
scatter mpg weight, ymlabel(##10) xmtick(##5)
//表示y轴每两个刻度之间有10个小刻度标识,x轴每两个刻度之间有5个小刻度
scatter mpg weight, ymtick(#20, grid) xmtick(#20, grid gmax)
//选项grid表示绘制网格线,gmax表示在最大值处绘制网格线
scatter mpg weight, by(foreign) ylabel(,nogrid)
//要求y轴方向不出现网格线
scatter le year, c(1) xlable(#10, grid)
scatter le year, c(1) xlable(1900(10)2000, grid)
scatter le year, c(1) xlable(1900 1918 1940(20)2000, grid)
y title(“XXXX”)xtitle(“XXXX”) //坐标轴标题选项
{y|x}title(“”) //不显示任何标题
scatter yvar xvar, ytitle(“XXXX”) xtitle(“XXXX”)
scatter yvar xvar, ytitle(“XXXX” “xxxx” “yyyy”) //标题放置多行内容
scatter y x, xtitle(“in days”, suffix) //标题第二行变成“in days”
scatter y x, xtitle(“in days”,prefix) //标题第一行变成“in days”
4.by选项的设定
by(varlist[, byopts])
scatter mpg weight || lfit mpg weight ||, by(foreign, total row(1))
//复合作图,让子图排成一行
scatter mpg weight || lfit mpg weight ||, legend(cols(1)) by(foreign, total legend(pos(4)))
//legend放在by外,表示图例与自身而言,排成一列
//legend放在by中,表示图例与整图而言,放置在四点钟方向
scatter mpg weight || lfit mpg weight ||, legend(cols(1)) by(foreign, total legend(at(4) pos(0)))
//legend(at(4) pos(0))表示将图例放在2x2的图形矩阵右下方留白处,且在绘图区域内
//pos(0)表示在图中,pos(1)表示在图外
5.轴线/增加线选项
scatter mpg price weight //绘制散点图,此时mpg和price共用一个y轴
Scatter mpg weight || scatter price weight, yaxis(2)
//绘制散点图,此时mpg和price用两个y轴,在图形右侧增加y轴
Scatter mpg weight || scatter price weight, yaxis(2) || ,xlabel (#10) ytick(#10,axis(2)) ylabel(#8,axis(1))
//x轴分位大约10个刻度,左边的y轴分位大约8个刻度,右边的y轴分位10个刻度。
scatter yvar xvar, yline(10) //增加一条yvar=10的水平参考线
scatter yvar xvar, xline(1944 1988) //增加两条xvar=1944 1988的参考线
scatter yvar xvar, yline(10,lstyle(foreground)) //表示设置的增加线与坐标轴样式相同
scatter yvar xvar, yline(10,lstyle(grid)) //表示设置的增加线与网格线样式相同
6.scale选项
scale(#)设定一个数字以便调整整个图像,包含文本、标记、线段的大小,实际上是整个图形的放大镜或缩小镜。
scale(1)是默认值,为使整个图像增大20%,可以设置scale(1.2);为使整个图像缩小20%,可以设置scale(0.8)