首页 > 解决方案 > SGPLOT 两个 Y 轴

问题描述

我有一个如下所示的数据集:

  pt_fin    Admit_Type    MONTH_YEAR   BED_ORDERED_TO_DISPO (minutes)
     1        Acute             Jan              214
     2        Acute             Jan              628
     3        ICU               Jan              300
     4        ICU               Feb               99

我已经有一个代码(见下文),它产生一个带有 ax (承认类型分组我的月份)和 y 轴(中位数床位到处置时间)的图,但我想添加一个辅助 Y 轴来计算患者的数量用于计算每个相应的中位数。

例如,我想要一个对应于月份和入院类型的次要 Y 轴数据点,因此对于 Jan,次要 Y 轴数据点将有 2 个单独的计数 1) 入院急性患者和 2) 患者住进ICU。

 proc sgplot data=Combined;
 title "Median Bed Order To Dispo By Month, Admit Location"; 
 vbar MONTH_YEAR   / response=BED_ORDERED_TO_DISPO stat=median
 group = Admit_Type groupdisplay=cluster ;
 run; 

我一直在尝试调整我在这里找到的内容,但是我的代码生成的图非常混乱且不正确。

https://blogs.sas.com/content/iml/2019/01/14/align-y-y2-axes-sgplot.html

期望的输出(假设 X 和 * 分别连接在对应于 Y 轴的折线图中):

     |        *                      |
  m  |   |    |              X   |   | #
  e  |   x    |              |   *   |
  d  |   |    |              |   |   |
     |-------------------------------|
      Acute ICU           Acute ICU  
        Jan                FEb

我尝试过的产生垃圾的代码

proc sgplot data=Combined;
vbarbasic MONTH_YEAR/ response=Bed_Order_Hour y2axis; /*needs to be on y axis 1*/
group = Admit_Type
series x=MONTH_YEAR y=Pt_fin/ markers; *Pt_fin needs to be on y axis 2*/
run;

标签: sas

解决方案


您的可视化解释很弱。您可能希望在SGPLOT,VBAR和中使用两个绘图语句VLINE

data have;
  do type = 'Acute', 'ICU';

    do month = '01jan2018'd to '31dec2018'd;

      do _n_ = 1 to floor (50 * ranuni(123));

        patid + 1;
        minutes = 10 + floor(1000 * ranuni(123));

        output;
      end;

      month = intnx ('month', month, 0, 'e');
    end;
  end;

  format month monname3.;
run;

ods html5 file="plot.html" path="c:\temp";

proc sgplot data=have;
  title "Median of patient minutes by month";
  vbar  month / group=type groupdisplay=cluster response=minutes stat=median;
  vline month / group=type groupdisplay=cluster response=minutes stat=freq y2axis ;
run;

ods html5 close;

在此处输入图像描述

vline观众展示了对每个中值频率的次要关注。只需修改 vbar 强度,就可以传达中值的相同信息(作为一个方面)。最高频率条(中位数)将是“最强”的阴影,而较低的“频率”条将褪色。


推荐阅读