sas学习系列17.绘图ⅲ—散点图,时间序列图,拟合曲线图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17. 绘图Ⅲ—散点图,时间序列图,拟合回归图

三、散点图

以两个定量变量的数值在二维坐标系中描点,生成的图形就是散点图。散点图能直观地显示出因变量随自变量变化而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。

基本语法:

PROC SGPLOT;

SCATTER X=自变量Y=因变量/ options;

可选项:

(1)DATALABEL = variable-name

指定该变量的值作为各个数据点的标签,若不指定变量

名,则使用Y变量的值;

(2)GROUP = variablename

指定分组变量,按其值对数据分组分别处理;

(3)NOMISSINGGROUP

指定不包含分组变量缺省值的观测;

(4)TRANSPARENCY = n——指定透明度。

例1关于鸟类的数据(C:\MyRawData\),变量包括名称、种类(S-鸣禽,R-猛禽)、身长(cm)、翼展(cm),注意每行有多组数据:

读入数据,绘制散点图,要求按类型分组。

代码:

data wings;

infile'c:\MyRawData\';

input Name $12. Type $ Length Wingspan @@;

run;

* Plot Wingspan by Length;

proc format;

value $birdtype

'S' = 'Songbirds'

'R' = 'Raptors';

run;

proc sgplot data = wings;

scatter X = Wingspan Y = Length / GROUP = Type;

format Type $birdtype.;

title'Comparison of Wingspan vs. Length';

run;

运行结果:

四、时间序列图

时间序列图,是以时间为X轴,变量为Y轴的一种图(数据点之间依次用线段连接),观察变量是否随时间变化而呈现某种趋势。

基本语法:

PROC SGPLOT;

SERIES X=时间变量Y=因变量/ options;

注:X变量必须事先排好序。

可选项:

(1)CURVELABEL = 'textstring'

给曲线添加标签,若不指定标签文本,则使用Y变量;

(2)DATALABEL = variable-name

指定该变量的值作为各个数据点的标签,若不指定变量

名,则使用Y变量的值;

(3)MARKERS

给每个数据点加上标签;

(4)GROUP = variablename

指定分组变量,按其值对数据分组分别处理;

(5)NOMISSINGGROUP

指定不包含分组变量缺省值的观测;

(6)TRANSPARENCY = n——指定透明度。

例2 某作家记录了某天的用电量数据(C:\MyRawData\),变量包括时间(24个时刻)、用电量(千瓦时):

读取数据,绘制用电量随时间变化的曲线图,画一条用电量=的基准线。

代码:

data electricity;

infile'c:\MyRawData\';

input Time kWh @@;

run;

* Plot temperatures by time;

proc sgplot data = electricity;

series X = Time Y = kWh / MARKERS;

REFLINE / LABEL = (' kh') TRANSPARENCY = ;

xaxis values = (0TO24BY1);

yaxis label = 'Electricity (kWh)';

title'Hourly Use of Electricity';

run;

运行结果:

例3 2013-2014年股票代码为sh600000的股票数据如下:(部分)(C:\MyRawData\)

读入数据,日期只选择2014年,只保留变量date, open(开盘价), high(最高价), low(最低价), close(收盘价)。按日期从小到大排序,并绘制该股票2014年的开盘价和收盘价的变化趋势图。

代码:

proc import datafile = 'C:\MyRawData\'DBMS=CSV OUT = sh600000 REPLACE;

getnames = YES;

datarow = 2;

run;

data sh600000_2014;

set sh600000;

keep date open high low close;

where'1Jan2014'D <= date <= '31Dec2014'D;

proc sort data = sh600000_2014;

by date;

run;

proc print data = sh600000_2014;

title'sh600000股票2014年的数据';

run;

proc sgplot data = sh600000_2014;

series X = date Y = open / name = 'kaipan'legendlabel='开盘价';

series X = date Y = close / name = 'shoupan'legendlabel='收盘价';

title'股票(sh600000)2014年开盘价、收盘价的变化趋势';

keylegend'kaipan''shoupan' / LOCATION = INSIDE POSITION = TOP;

xaxis label = '日期';

相关文档
最新文档