SAS学习(1)——proc sgplot做图指定各组格式、颜色

本文介绍了在SAS中如何解决作图时颜色不一致的问题,通过创建自定义数据集指定颜色,并使用ATTRID选项来保持分组颜色的一致性。此外,还展示了如何调整配色以改善视觉效果。通过示例代码,展示了在procsgplot中应用这些方法的过程,从而确保在不同区域下,同一变量的颜色始终相同。
摘要由CSDN通过智能技术生成

SAS作图时如果使用默认的配色,颜色会较暗,而且会因为数据自身的原因导致同一个代码绘制的图给分组的颜色不同,影响观感和方便性。

例如利用proc sgplot中的by语句画出基于不同地区的百分条图中会出现不同的地区“种类"这个变量分组的颜色不一样:

 

上面两张图里左图在region=C中,“种类”这个变量中A-蓝色,B-绿色,C-红色,但是在右图region=A时变成了A-蓝色,B-红色

要改变颜色,可以尝试 ATTRID= option

具体操作方法如下:

先创建一个新的数据集myattramp,主要用于制定proc sgplot语句中group变量的各个值的格式,linecolor为框线颜色,fillcolor为填充颜色,value为group变量的赋值,steelblue、skyblue和lightsteelblue是三种深浅不一的蓝色的名称,其他的颜色名称可以在网上找到。

data myattrmap;
length linecolor $ 14 fillcolor $ 14;
input ID $ value $ linecolor $ fillcolor $;
datalines;
myid  A  steelblue      steelblue
myid  B  skyblue        skyblue 
myid  C  lightsteelblue lightsteelblue
;
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);/*设置各种字体及格式*/
yaxis discreteorder=data label="省份";
xaxis grid values=(0 to 1 by 0.1)  ;
run;

重新运行代码后,就发现图片变成了这样

 

可以发现,“种类”中对应的颜色保持一致了,但是这个配色还是有一点丑,具体的可以在使用中再调整。

将自己在学习SAS过程中遇到的问题和最后使用的解决方法记录下来,如果有错漏或者更好的解决方法欢迎大家一起讨论哦~

参考资料:SAS Help Center

SAS(R) 9.3 ODS Graphics: Procedures Guide, Third Edition

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小熊小熊没有四点水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值