SAS学习(6)——proc sgplot小总结

在以往的数据分析过程中常常需要用proc sgplot绘制堆叠图或者条形图,所以在这里将常用的,好用的代码做一汇总。

(1)颜色的设定

方法一:自己设定颜色的方法以前有一篇已经提到了SAS学习(1)——proc sgplot做图指定各组格式、颜色_wwwww_t的博客-CSDN博客_sas sgplot利用SAS作图时会遇到https://blog.csdn.net/weixin_49282401/article/details/118093238?spm=1001.2014.3001.5501首先先用如下代码设定不同的分组对应的颜色:

data myattrmap;
length linecolor $ 14 fillcolor $ 14;
input ID $ value $ linecolor $ fillcolor $; /*这里的ID是分组*/
datalines;
myid  A  steelblue      steelblue 
myid  B  skyblue        skyblue
myid  C  lightsteelblue lightsteelblue
/*steelblue、skyblue以及lightstellblue为深浅不一的蓝色的名字,可以按需替换*/
;
run;

接下来,需要在proc sgplot语句中插入以下标红的代码:

proc sgplot data=test pctlevel=group dattrmap=myattrmap;
styleattrs datacolors=(steelblue skyblue lightsteelblue) ;
by region;/*注意要提前使用proc sort排序*/
hbar province / group=type/*分组变量*/
                groupdisplay=stack /*绘制堆叠式百分条图*/
                attrid=myid
                stat=percent
                categoryorder=respdesc
datalabel datalabelattrs=(Family=Arial Size=8 Style=Italic Weight=Bold)
seglabel seglabelattrs=(color=white size=10 weight=bold);/*设置各种字体及格式*/
run;

这样就可以实现改变图中不同分组的颜色的目标啦

方法二:

另外发现在vbar statement后的fillattrs也可改变柱状图的颜色,同时,用这个option也可改变透明度,具体代码为

fillattrs=(color=CX13478C transparency=0.5 );/*补充指定颜色,设置透明度为0.5*/

我在这里输入颜色用的是RGB,SAS中支持多种形式的颜色输入,如下:

 具体内容可以在SAS帮助文档中《Color-Naming Schemes》中找到

(2)汇总内容

因为其他代码较为琐碎,所以这里采用一段长代码,用注释的方式进行展示:

这里就是对所有的代码进行汇总展示,只需要看每一个语句的功能按需取用即可,

一般的条形图都应该如下的代码都可以满足的

ods listing
gpath="C:\Users\Desktop" 
image_dpi=300 style=Journal;/*设置图片导出位置、DPI以及格式*/
ods graphics / imagename="Figure S1" width=20cm height=16cm border=off;
/*设置图片名称、大小(长、宽)以及导出的图片之间有没有边框*/
proc sgplot data=test;
vbar age/
response=COL1/*指定包含数据的变量*/
group=growth/*设置分组*/
GROUPDISPLAY = CLUSTER/*设置显示形式,stack是堆叠图,cluster是复式条形图*/
fill/*设置颜色全部填充,因为有时候可能出现柱状图内是一个颜色,边框是另一个颜色的情况*/
datalabel DATALABELATTRS=(style=normal size=10)/*柱状图上加上数值,并设置字体和大小*/
;
KEYLEGEND /position=bottom title='Growth outcomes'/*针对有分组变量的图,对不同组指示的设置,position表示图例展示的位置*/;

xaxis 
label=" age (year)";/*设置x轴标签*/
yaxis 
display=(noline)/*指定显示在轴上哪些特征,noline隐藏轴线,nolabel隐藏轴标签,还有
noticks和novalues,按需取用*/
grid/*设置网格线*/ 
label="Freqency of different egg initiation infant"/*设置y轴标签*/
values=(0 to 18 by 2)/*如果y轴是连续变量,可以设置间距,比如这个就是0到18,每2个做标记*/;
run;

暂做汇总如上,欢迎大家补充~

如果有错漏欢迎大家一起讨论哦~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊小熊没有四点水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值