SAS 拼图,一招取胜!
SAS绘图,虽饱受诟病,但此前我写过多篇文章,呼吁大家用ODS Graphics模块高效的绘制美轮美奂的统计图形。
具体可见:SCI统计图形教程合集
ODS Graphics的PROC SGPLOT过程使得各种统计图形绘制语法与形式上得到了极大的统一。 不过在实际的使用过程中,我们经常会碰到要绘制面板图,或者更切确的说,是多张统计图形的组合图。
期刊中的各种组合图:横向,纵向,以及纵横交错。
纵向↑
纵横交错↑
若图形相似,只是分组变量的不同,我们可以借助PROC SGPANNEL;但若图形差别大,是不同图形的拼凑,如何实现呢?好久没写SAS技巧了,今天给大家分享一个妙招: ODS layout gridded +ODS region 。
总体思路:
将绘图区域想象可以用表格分割的区域,用ODS layout gridded指定行数(rows=)或列数(columns=),规划表格即可。
用ODS region 开启一个单元格
用ODS Graphics 绘图填充单元格
重复2,3步,直到完成。
为方便理解,以最简单的2个图组合为例。
1. 横向2图
ods layout gridded columns=2 ;
ods region;
proc sgplot data=sashelp.heart;
scatter x=height y=weight;
run;
odsr egion;
proc sgplot data=sashelp.heart;
scatter x=diastolic y=systolic;
run;
ods layout end;
效果图↑
2. 纵向2图
ods layout gridded rows=2 ;
ods region;
proc sgplot data=sashelp.heart;
scatter x=height y=weight;
run;
ods region;
proc sgplot data=sashelp.heart;
scatter x=diastolic y=systolic;
run;
ods layout end;
效果图↑
3. 2*2图
ods layout gridded columns=2 ;
ods region;
proc sgplot data=sashelp.heart;
scatter x=height y=weight;
run;
ods region;
proc sgplot data=sashelp.heart;
scatter x=diastolic y=systolic;
run;
ods region;
proc sgplot data=sashelp.heart;
histogram diastolic ;
run;
odsregion;
proc sgplot data=sashelp.heart;
histogram systolic ;
run;
ods layout end;
效果图↑
如果喜欢我的分享,想了解更多技巧,
趁双11
当当5折+满200再减30
京东满200-100
厚颜推荐入手本人的SAS专著:
《SAS编程演义》,偏实际应用和技巧提高
以及本人参与组织翻译的:
《The Little SAS Book 中文版》,偏概念和基础
想换工作,跟我学SAS的,
点击原文链接。