前言
和数据报表一样,图表也是展现数据的重要方法,图表的直观效果是数据报表无法替代的,同时图表能够比文字更简洁的表达我们想要表达的内容。
一、制作简单折线图
代码如下:
symbol value=dot cv=red interpol=join ci=blue;
proc gplot data=ex.sales_year;
title 'Yearly Amount in North America';
plot N_Amount*year;
run;
quit;
goptions reset=all;
注:goptions reset=all语句是将图像的颜色,线型,字体等设置恢复默认设置,防止在一个文件中多次画图出现不必要的错误。
分析:symbol语句是设置散点图属性的,少了symbol语句则默认是散点图,symbol后面value控制点样式,cv控制着点的颜色,Interpol代表插值的方法,不写时默认为none,表示不作连线图,为join时表示按照点出现的顺序并用直线连接,下表列举了几种插值方法:
插值方法 | 作用 |
---|---|
NONE | 表示不作连线图,系统默认值 |
JOIN | 将数据按照数据集中出现的顺序用直线连接 |
SPLINE | 用光滑的插值曲线将数据点按照数据集中出现的顺序连接,并且使得曲线经过每一个点 |
SMnn | 用光滑的插值曲线来拟合数据点,曲线可以不经过数据点,nn取值0~99,取值越大,插值曲线的光滑程度越高 |
Rxyzzzmm | 根据数据点做回归线,x表示回归,取值为L,Q,C;y表示回归线是否过数据线,取值为0,1;zzz表示置信限,取值为CLM,CLI;mm表示置信水平 |
NEEDLE | 表示针对每一个点画一条从点到横坐标连线 |
STEPxyz | 制作阶梯图,x表示数据点在阶梯上的位置,取值为L,R,C;y表示是否用竖线连接各个阶梯;z表示是否对数据横坐标 变量排序 |
下面总结了一些symbol语句常用的连线属性
选项 | 作用 |
---|---|
width=n 或 w=n | 指定连线的粗细 |
line=线型 或 l=线型 | 指定连线的线型 |
ci=连线的颜色 | 指定连线的颜色 |
color=颜色 或 c=颜色 | 指点连线和散点的颜色 |
二、使用PLOT2语句绘制叠加图形
使用plot2语句可以为其所指定的纵坐标变量的右侧设立一条垂直坐标轴。
代码如下:
axis1 order=(1990 to 2012 by 5) minor=(color=blue number=1);
axis2 order=(13000 to 20000 by 1000) minor=(color=blue number=1 height=0.25);
symbol1 value=dot cv=red interpol=join ci=red;
symbol2 value=dot cv=red interpol=join ci=blue;
proc gplot data=ex.sales_year;
title 'Yearly Amount in North America';
plot N_Amount*year /overlay legend haxis=axis1 vaxis=axis2;
plot2 N_Transactions*year/legend;
run;
quit;
goptions reset=all;
分析:axis语句可以设置坐标抽的属性,order用来设置主刻度的属性,minor用来设置次刻度的属性(例如米m次刻度就是分米dm),axis1中order括号表示坐标抽的值从1990到2012的,并且每间隔5年去一个值,minor括号color代表颜色,number表示只显示一个次刻度,height代表次刻度在坐标抽的高度haxis代表很坐标的属性,vaxis代表纵坐标的属性。下面列举了axis语句常用选项:
选项 | 作用 |
---|---|
order | 指定主刻度显示的值 |
major | 指定主刻度的显示属性 |
minor | 指定次刻度的显示属性 |
length | 指定坐标轴的长度 |
label | 指定坐标轴标签属性 |
value | 指定坐标轴上主刻度的显示文字以及属性 |
三、使用分组变量绘制多条连线图
代码如下(示例):
axis1 order=(1990 to 2012 by 5) minor=(color=blue number=1);
axis2 minor=(color=blue number=1 height=0.25);
symbol2 value=: interpol=join ;
proc gplot data=ex.sales_year_by_area;
title 'Yearly Amount Serious By Area';
plot Amount*year=area/ haxis=axis1 vaxis=axis2;
run;
quit;
goptions reset=all;
分析:Amount*year=area中的area为分类数据,gplot会自动根据area不同的值在一个画板上绘画对应折线图,此时的图注也会自动添加上。
提示: 本文章内容来自《深入解析SAS》第五章----数据汇总与展现,详细内容可自行了解阅读。