我正在尝试使用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;
提前致谢。
答案 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;