SGPLOT:散点图覆盖图

时间:2016-04-05 17:26:05

标签: sas

我正在尝试使用group by条件创建散点图。在下面的例子中,我有一些数据点(连续变量)在分类变量MAKE之间是常见的。因此,数据点被覆盖,这使我无法识别图表是表示两个变量的存在还是仅存在一个变量。

如何通过在SGPLOT过程中使用两个不同的符号来避免它,就像我们在GPLOT中使用的方式一样。我使用的SGPLOT示例代码:

proc sgplot data=sashelp.cars(where=(make in ('Dodge', 'Chrysler')));
scatter Y=mpg_city X=mpg_highway / group=make markerattrs=(symbol=plus);
run;

我知道下面的代码有效,但我想使用SGPLOT代替GPLOT:

ods listing close;
SYMBOL1 VALUE=dot color=bib; 
SYMBOL2 VALUE=square color=brown;
proc gplot data=sashelp.cars(where=(make in ('Dodge', 'Chrysler')));
plot mpg_city * mpg_highway =make ;
run;

提前致谢。

1 个答案:

答案 0 :(得分:1)

嗯,当然它正在使用一个符号。你告诉它了!

删除您的MARKERATTR=(symbol=代码,或使用MARKERCHAR让代码来自变量或属性地图数据集(DATTRMAP)以指定它,如果您想成为能够具体指定两个标记。或者使用颜色。

以下是一些例子:

*Using MARKERCHAR;
data cars;
  set sashelp.cars;
  if make = 'Dodge' then marker_char = '+';
  else if make = 'Chrysler' then marker_char = 'o';
  else delete;
run;

proc sgplot data=cars(where=(make in ('Dodge', 'Chrysler')));
scatter Y=mpg_city X=mpg_highway / group=make markerchar=marker_char;
run;


*Using an attribute map (most similar to the GPLOT example);
data attr_map;
  length value markercolor $8;
  id='MakeAttr';
  value = 'Dodge';
  markersymbol='plus';
  markercolor='green';
  output;
  value='Chrysler';
  markersymbol='circle';
  markercolor='red';
  output;
run;


ods html style=htmlblue;
proc sgplot data=sashelp.cars(where=(make in ('Dodge', 'Chrysler'))) dattrmap=attr_map;
scatter Y=mpg_city X=mpg_highway / group=make attrid=MakeAttr;
run;