使用 Proc sgplot 的条形图中每个条的不同标签
Different label for each bar in a bar chart using Proc sgplot
我正在尝试使用 SAS 中的 Proc sgplot 将每个组的数量添加到 xaxis 上的组标签中。这是我想要的数据和图表。我想要 xaxis 上每个条的样本(手写部分)。非常感谢您的帮助!
Data have ;
input type sex $ n n_total percent ;
datalines;
0 F 6 29 20.7
1 F 387 496 78.2
0 M 4 15 26.6
1 M 264 305 86.5
;
Run;
proc sgplot data=have ;
vbarparm category= type response=percent /group=sex groupdisplay=cluster datalabel;
run;
我要创建的图表:
您可以计算显示 百分比值 和文本 n=
的条形数据标签
示例:
Data have ;
input type sex $ n n_total percent ;
datalines;
0 F 6 29 20.7
1 F 387 496 78.2
0 M 4 15 26.6
1 M 264 305 86.5
;
Run;
data plot;
set have;
barlabel = cats(percent) || ' %N/(n=' || cats(n_total, ')');
run;
proc sgplot data=plot;
vbarparm
category=type
response=percent
/ group=sex
groupdisplay=cluster
datalabel=barlabel datalabelfitpolicy=splitalways splitchar='/'
;
label percent = 'Percent N having some attribute';
run;
虽然我同意 Richard 的观点,您最好将其放在条形标签中,但也很容易将其放在轴 table 中。
Data have ;
input type sex $ n n_total percent ;
datalines;
0 F 6 29 20.7
1 F 387 496 78.2
0 M 4 15 26.6
1 M 264 305 86.5
;
Run;
proc sgplot data=have ;
vbarparm category= type response=percent /group=sex groupdisplay=cluster datalabel;
xaxistable n_total/class=sex classdisplay=cluster position=bottom location=inside colorgroup=sex;
run;
classdisplay=cluster
使值像条形一样展开,location=inside
将其放在条形的正下方,colorgroup=sex
使其像条形一样着色(而不是黑色)。 position=bottom
是默认值,只是突出显示该选项。
如果您愿意,您可以按照 Richard 所做的相同方式进一步自定义显示的内容 - 通过创建一个文本变量,其中包含您想要为每个显示的内容,并将其用作您的 variable
( xaxistable
的第一个参数)。该变量可以是数字或字符。
我正在尝试使用 SAS 中的 Proc sgplot 将每个组的数量添加到 xaxis 上的组标签中。这是我想要的数据和图表。我想要 xaxis 上每个条的样本(手写部分)。非常感谢您的帮助!
Data have ;
input type sex $ n n_total percent ;
datalines;
0 F 6 29 20.7
1 F 387 496 78.2
0 M 4 15 26.6
1 M 264 305 86.5
;
Run;
proc sgplot data=have ;
vbarparm category= type response=percent /group=sex groupdisplay=cluster datalabel;
run;
我要创建的图表:
您可以计算显示 百分比值 和文本 n=
示例:
Data have ;
input type sex $ n n_total percent ;
datalines;
0 F 6 29 20.7
1 F 387 496 78.2
0 M 4 15 26.6
1 M 264 305 86.5
;
Run;
data plot;
set have;
barlabel = cats(percent) || ' %N/(n=' || cats(n_total, ')');
run;
proc sgplot data=plot;
vbarparm
category=type
response=percent
/ group=sex
groupdisplay=cluster
datalabel=barlabel datalabelfitpolicy=splitalways splitchar='/'
;
label percent = 'Percent N having some attribute';
run;
虽然我同意 Richard 的观点,您最好将其放在条形标签中,但也很容易将其放在轴 table 中。
Data have ;
input type sex $ n n_total percent ;
datalines;
0 F 6 29 20.7
1 F 387 496 78.2
0 M 4 15 26.6
1 M 264 305 86.5
;
Run;
proc sgplot data=have ;
vbarparm category= type response=percent /group=sex groupdisplay=cluster datalabel;
xaxistable n_total/class=sex classdisplay=cluster position=bottom location=inside colorgroup=sex;
run;
classdisplay=cluster
使值像条形一样展开,location=inside
将其放在条形的正下方,colorgroup=sex
使其像条形一样着色(而不是黑色)。 position=bottom
是默认值,只是突出显示该选项。
如果您愿意,您可以按照 Richard 所做的相同方式进一步自定义显示的内容 - 通过创建一个文本变量,其中包含您想要为每个显示的内容,并将其用作您的 variable
( xaxistable
的第一个参数)。该变量可以是数字或字符。