You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PROC SGPANEL生成的散点趋势图与均值折线图合并分组展示?

用PROC SGPANEL合并个体趋势线与均值折线图(按性别分组)

问题需求

需要将所有受试者的个体趋势线(SERIES语句绘制)与各年龄的均值折线(VLINE+STAT=MEAN绘制)合并到同一组面板中,按男女(GROUP=1为男性,GROUP=2为女性)分别展示,替代原来分开生成的两个独立图表。

解决方案

只需在同一个PROC SGPANEL过程中同时添加个体趋势线和均值折线的绘图语句即可,无需拆分两个PROC调用。以下是完整实现代码:

完整代码(含数据处理+合并绘图)

DATA   PROYDATA;
INPUT  GROUP ID AGE8 AGE10 AGE12 AGE14 @@;
CARDS;
1  1 26.0 25.0 29.0 31.0  1  2 21.5 22.5 23.0 26.5  1  3 23.0 22.5 24.0 27.5
1  4 25.5 27.5 26.5 27.0  1  5 20.0 23.5 22.5 26.0  1  6 24.5 25.5 27.0 28.5
1  7 22.0 22.0 24.5 26.5  1  8 24.0 21.5 24.5 25.5  1  9 23.0 20.5 31.0 26.0
1 10 27.5 28.0 31.0 31.5  1 11 23.0 23.0 23.5 25.0  1 12 21.5 23.5 24.0 28.0
1 13 17.0 24.5 26.0 29.5  1 14 22.5 25.5 25.5 26.0  1 15 23.0 24.5 26.0 30.0
1 16 22.0 21.5 23.5 25.0
2  1 21.0 20.0 21.5 23.0  2  2 21.0 21.5 24.0 25.5  2  3 20.5 24.0 24.5 26.0
2  4 23.5 24.5 25.0 26.5  2  5 21.5 23.0 22.5 23.5  2  6 20.0 21.0 21.0 22.5
2  7 21.5 22.5 23.0 25.0  2  8 23.0 23.0 23.5 24.0  2  9 20.0 21.0 22.0 21.5
2 10 16.5 19.0 19.0 19.5  2 11 24.5 25.0 28.0 28.0
RUN;

/* 转换为长格式数据 */
DATA Unidata;
 SET Proydata;
 ARRAY AgeVector(4) Age8--Age14;
 Subject + 1;
 DO Time = 1 TO 4;
    Age = 2*Time + 6;
    Dental = AgeVector(Time);
    OUTPUT;
 END;
 DROP Age8--Age14;
RUN;

* 按分组和年龄排序(保证绘图顺序正确);
PROC SORT DATA=Unidata OUT=SortData;
BY GROUP Age;
RUN;

/* 合并绘制个体趋势与均值折线 */
PROC SGPANEL NOAUTOLEGEND DATA=SortData;
    PANELBY GROUP / NOVARNAME; * NOVARNAME避免显示变量名作为面板标题前缀;
    FORMAT GROUP GROUP.;

    * 绘制每个受试者的个体趋势线(细灰线避免遮挡均值线);
    SERIES X=Age Y=Dental / GROUP=Subject LINEATTRS=(THICKNESS=1 COLOR=GRAY);

    * 绘制各年龄的均值折线(粗红线+标记+数据标签突出显示);
    VLINE Age / RESPONSE=Dental STAT=MEAN 
               LINEATTRS=(THICKNESS=2 COLOR=RED) 
               MARKERS MARKERATTRS=(SIZE=2MM COLOR=RED)
               DATALABEL DATALABELATTRS=(COLOR=RED WEIGHT=BOLD);
RUN;

关键说明

  1. 合并绘图逻辑:在同一个PROC SGPANEL中依次添加SERIES和VLINE语句,SAS会自动将两层图形叠加在同一个面板中。
  2. 视觉层次优化:将个体趋势线设为灰色细线条,均值折线设为红色粗线条+标记点,避免图形重叠导致的视觉混乱。
  3. NOAUTOLEGEND:由于个体受试者数量多,关闭自动图例避免冗余;若需要展示均值线的图例,可去掉该参数并调整图例属性。
  4. 数据排序:提前按GROUP和Age排序,保证折线的绘制顺序符合时间逻辑。

内容的提问来源于stack exchange,提问作者londlbondl87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:54:53