SAS 9.4分组与子分组条形图重叠求助:如何实现条形并列
解决SAS SGPanel重叠条形图问题
嘿Sandra,我看到你在制作带分组和子分组的条形图时遇到了重叠的问题,这大概率是代码里的分组参数冲突导致的,咱们来一步步调整解决:
问题根源
你在vbar语句里重复指定了两次group=参数(先是group=grupp_text,后面又加了group=time),而且panelby已经按time做了面板划分,这就导致SAS的分组逻辑混乱,最终出现重叠的条形。
修复后的代码
要实现并列条形,我们需要理清分组层级:既然已经用panelby按time拆分了面板,那在每个面板里,就用grupp_text作为vbar的分组,再加上cluster选项确保条形并列展示:
proc sgpanel data=transp_4; panelby time / layout=columnlattice onepanel colheaderpos=bottom rows=2 novarname noborder; vbar type / group=grupp_text response=col1 stat=sum nostatlabel cluster; colaxis display=(nolabel); rowaxis grid; run;
关键调整点
- 移除了重复的
group=time:因为panelby已经帮我们按time划分了独立面板,不需要在vbar里再重复分组 - 添加
cluster选项:这个参数会强制分组后的条形并列排列,而不是默认的重叠模式
如果你的需求是把time和grupp_text都作为同一面板内的嵌套分组(不用panelby),那可以改用groupdisplay=cluster配合group=和subgroup=,比如:
proc sgplot data=transp_4; vbar type / group=time subgroup=grupp_text response=col1 stat=sum nostatlabel groupdisplay=cluster; colaxis display=(nolabel); rowaxis grid; run;
这样就能在同一个图里看到time和grupp_text双重分组的并列条形了。
希望这个调整能帮你得到想要的图表!
内容的提问来源于stack exchange,提问作者Sandra L.
相关产品推荐
相关产品推荐

