在参考线之间添加标签 SAS

Adding Labels Between Reference Lines SAS

我知道如何给参考线添加标签,但是如何在参考线之间添加标签?

这是我现在的代码:

 proc sgplot data=biosc.Summary;
 series  x=day y=Mean / group=Treat;
 scatter x=day y=Mean / group=Treat
   yerrorlower=LowerSD yerrorupper=UpperSD;
   where day in (3:10);
 xaxistable N / location=inside class=Treat colorgroup=Treat
          title="Number of Patients Participating by Treatment Day"
          valueattrs=(size=10) labelattrs=(size=10);
 yaxis label='Mean +/- SD';
 xaxis label='Study Day' values=(3 4 5 6 7 8 9 10);
 refline 4 8 / axis=x;
 run;

这是我的图表:

我想要做的是在 4 处的参考线左侧有一个标签“Phase 1”,在 2 条参考线之间有一个标签“Phase 2”,在参考线的右侧有一个标签“Phase 3”在 4.

我该怎么做?

使用 LABEL option on REFLINE 语句添加它们。

标签 <=变量> | <=(“文本字符串 1” ... “文本字符串 n”)> 为每条参考线创建标签。如果您未指定标签值,则该行的参考值将用作标签。 如果指定标签值,则可以使用以下选项。

您可以使用 labelloclabelpos 来帮助控制位置。

refline 4 8 / axis=x label = ("Phase 1", "Phase 2") labelloc=inside;

如果您不能将它们准确地放置在您想要的位置,您可以指定一个 X/Y 位置并改用 TEXT 语句。不过,这确实需要您将数据添加到图形数据集中。

data refLabels;
infile cards dlm=',';
input label_x label_y label_text $;
4, 45, Phase 1
5, 45, Phase 2
;;;;

data biosc.summary1;
set biosc.summary1 refLabels;
run;

然后将 text 语句添加到您的 SGPLOT。

text x = label_x y = label_y text = label_text;