如何使用 sgpanel 图根据比率变量绘制红色阴影

How to plot shade red according to ratio variable using sgpanel plot

我想绘制数据集并通过正确的设置获得所需的输出。

  1. 根据 0-1 的比例(比率)(0=浅红色,1=深红色)绘制散点图,使点呈红色阴影,从浅红色到深红色。
  2. 根据比例 0-1(第 1 点)显示图例并显示红色标尺。

数据说明:

地区-城市(快捷方式)
id - 用户 id
var - 变量
时间 - 日期时间
出口 - 消费者离开
ratio - 比例(0-1之间)

数据样本和尝试绘图(显然不正确):

data data;
input area $ id $ var $ time $ exit $ ratio $;
datalines;
A 1 1 1 0 0.18
A 1 1 2 0 0.11
A 2 1 1 1 0.14 
A 2 1 2 0 0.15 
A 2 1 3 0 0.14
A 3 1 1 0 0.17
A 3 1 2 0 0.19
A 3 1 3 1 0.21
A 3 1 4 0 0.14
B 4 2 1 0 0.14 
B 4 2 2 1 0.15
B 5 2 1 0 0.17
B 5 2 2 0 0.25
B 5 2 3 0 0.31
A 1 3 1 0 0.22
A 1 3 2 0 0.13
A 2 3 1 1 0.16 
A 2 3 2 0 0.11 
A 2 3 3 0 0.22
A 3 3 1 0 0.27
A 3 3 2 0 0.29
A 3 3 3 1 0.31
A 3 3 4 0 0.24
B 4 4 1 0 0.24 
B 4 4 2 1 0.35
B 5 4 1 0 0.47
B 5 4 2 0 0.15
B 5 4 3 0 0.21
;;
run;


data attrs;
input id $ risk $ fillcolor $;
datalines;
ratio 0.05 Verylightred
ratio 0.15 Lightred
ratio 0.20 Red
ratio 0.25 Darkred
ratio 0.30 Verydarkred
ratio 0.35 Verydarkstrongred
;           
run;



proc sgpanel data=data dattrmap=attrs;
    panelby area exit;
    scatter y=id x=var / markerattrs = (symbol = squarefilled) group=ratio attrid=ratio;
run;

这会让你们更亲近。

  • 比率应该是要绘制的数字
  • ratio是连续的,应该如何分组?
  • 数据属性图上的颜色,颜色长度不够长,风险应该是数字

我不知道如何为你想要的颜色指定你想要的范围,但这让你更接近使用自动图例。

实现这一点的一种方法是将变量添加到每个组的数据集中,然后您可以使用数据属性图控制每个组的颜色。这意味着在 'data' 数据集中添加一个名为 ratio_group 的列,该列映射到数据属性映射 table 中的值。使用该变量组。

data data;
input area $ id $ var $ time $ exit $ ratio ;
datalines;
A 1 1 1 0 0.18
A 1 1 2 0 0.11
A 2 1 1 1 0.14 
A 2 1 2 0 0.15 
A 2 1 3 0 0.14
A 3 1 1 0 0.17
A 3 1 2 0 0.19
A 3 1 3 1 0.21
A 3 1 4 0 0.14
B 4 2 1 0 0.14 
B 4 2 2 1 0.15
B 5 2 1 0 0.17
B 5 2 2 0 0.25
B 5 2 3 0 0.31
A 1 3 1 0 0.22
A 1 3 2 0 0.13
A 2 3 1 1 0.16 
A 2 3 2 0 0.11 
A 2 3 3 0 0.22
A 3 3 1 0 0.27
A 3 3 2 0 0.29
A 3 3 3 1 0.31
A 3 3 4 0 0.24
B 4 4 1 0 0.24 
B 4 4 2 1 0.35
B 5 4 1 0 0.47
B 5 4 2 0 0.15
B 5 4 3 0 0.21
;;
run;


proc sgpanel data=data ;
    panelby area exit;
    scatter y=id x=var / markerattrs = (symbol = squarefilled size=10) 
                        colorresponse=ratio 
                        colormodel=(verylightred lightred red darkred verydarkred verydarkstrongred);
colaxis grid minorgrid;
rowaxis grid minorgrid;
run;

对于标记大小,请查看 MARKERATTRS 选项下的 SIZE 选项。 对于网格,请查看 COLAXIS 和 ROWAXIS 语句下的 GRID/MINORGRID 选项。

COLAXIS documentation