Sas 绘制两个Y轴

Sas 绘制两个Y轴,sas,Sas,我有一个如下所示的数据集: pt_fin Admit_Type MONTH_YEAR BED_ORDERED_TO_DISPO (minutes) 1 Acute Jan 214 2 Acute Jan 628 3 ICU Jan 300 4

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

  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
我已经有了一个代码(见下文),该代码生成了一个带有x轴(我的月份分组的入院类型)和y轴(从床位到出院时间的中位数)的图,但我想添加一个次要y轴,用于计算每个中位数的患者数

例如,我需要一个与月份和入院类型相对应的次要Y轴数据点,因此对于一月,次要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; 
我一直在尝试调整我在这里发现的东西,但是我的代码生成的图非常混乱而且不正确

所需输出(假设X和*,分别连接在对应于Y轴的线形图中):

我试过的产生垃圾的代码

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;

你的解释很弱。您可能希望在
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强度来传达。最高频率条(中位数)将是“最强”阴影,较低的“频率”条将褪色。

您还没有展示您想要的示例或您尝试过的代码。上面的代码只使用了一个plot语句,因此您还没有尝试添加任何内容。如果您想这样做,我想您需要先汇总数据,因此您可能需要切换vbarparm,而不是使用文本语句来显示值或xaxistable,具体取决于您想要的布局,您还没有显示或指示这些布局。@Reeza查看我更新的帖子,了解我想要的内容(直观)-我用文字解释了我想要的。我知道第一个代码产生了什么,并没有将第二个代码包括在内,以避免用不起作用的东西弄脏水域。我不确定这个问题为什么被标记下来,我想我已经很好地解释了这个问题-它只需要进一步澄清一下。Y2axis将它放在次轴上,当您注意到希望它放在axis1上而不是在series语句上时,为什么要用它呢。你的视力不清楚。你的第二组数据只是一个带有N的x/y散点图,或者N是另一个像你的x的条吗?我投了反对票,因为你没有显示你尝试了什么或者你想要什么。对于图形,如果您甚至不指定是要一个包含两个条形图还是一个条形图和一个点的条形图,一个单词描述是不够的。你解释你的计算,但根本不解释你的可视化类型。这是天才,谢谢!现在我将教自己如何摆弄轴标签和美学!
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;