SAS根据数据值处理SGPANEL控制线或标记颜色

时间:2015-01-14 19:15:36

标签: graph sas

我在SAS中使用proc SGPANEL制作图表。它是动物数据,所以它由动物镶嵌。在每只动物的图中,有3行代表不同的血液测试值。我想知道我是否可以控制颜色,如果值超出正常限制(由单独的标志变量标识),那么数据点将是红色,但如果值在正常限制内,数据点将是黑色的。

我只做了一次血液测试的类似情节,在那种情况下,我提出了正常限制的参考线。这种情况的问题是每次验血都有不同的正常限制,所​​以我不能使用这种策略。

我现有的代码(不包含与flag变量链接的颜色,只显示数据)如下:

proc sgpanel data=all;
  panelby animal / spacing=5 novarname columns=5;
  series x=dy y=value/ group=parameter markers;
  colaxis label='Day';
  rowaxis label='Value';
run;

1 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是使用仅在设置标志时存在的新标记覆盖标记。这是一个例子。基本上我添加了一个新值value_outrange,当你需要一个红色标记时,它只有一个值,然后我要求一个带有它的散点图和红色标记颜色。

您还可以将所有标记覆盖在两个散点图中,一个具有value_outrange,另一个具有value_inrange,这可以避免两个标记位于这些位置;总而言之,它看起来并不坏,所以我认为只是一个很好。

data all;
  input animal $ dy value flag parameter;
  if flag=1 then value_outrange=value;
  else call missing(value_outrange);
datalines;
bear 1 5 0 1
bear 2 6 0 1
bear 3 7 0 1
bear 4 8 0 1
bear 5 13 1 1
bear 6 10 0 1
dog 1 8 0 2
dog 2 9 0 2
dog 3 9 0 2
dog 4 11 1 3
dog 5 10 0 3
dog 6 11 0 3
;;;;
run;

proc sgpanel data=all;
  panelby animal / spacing=5 novarname columns=5;
  series x=dy y=value/ group=parameter markers;
  scatter x=dy y=value_outrange/group=parameter markerattrs=(color=red);
  colaxis label='Day';
  rowaxis label='Value';
run;