16. 绘图Ⅱ—条形图,直方图,盒形图
(一)定性变量的图形
定性变量(分类变量)也可以通过图形直观地描绘出它们各类的数量和所占比例,常用的有条形图、饼形图和马赛克图。
一、条形图(Bar Chart)
用若干个细长的矩形条的高度(不是宽度,也不是面积)来表示定性变量各水平组的频数。分为
单式条形图——横轴上只有一个定性变量;
复式条形图——横轴上有两个或多个定性变量(GROUP可选项);
基本语法:
PROC SGPLOT data = 数据集; VBAR或HBAR 变量列表 可选项>;
注:“VBAR”绘制竖直方向的条形图,“HBAR”绘制水平方向的条形图。 可选项:
GROUP = 变量名 GROUPDISPLAY =选项 RESPONSE = 变量名 STAT = 统计量 指定分组变量 指定分组条形的显示方式: STACK(堆叠型,默认),CLUSTER(簇型); 指定一个数值变量做统计分析; 对RESPONSE变量做指定的统计分析; 有RESPONSE变量默认FREQ;否则默认SUM; ALPHA = p BARWIDTH=w DISCRETEOFFSET = x TRANSPARENCY = n DATALABEL = 变量名 MISSING 设定置信限: [0,1],默认为0.05(95%可信) 设定“条形”宽度,介于0.1和1之间,默认为0.8; 设定每个条形偏移中心的距离: [-0.5,0.5],默认为0 指定条形的透明度: [0,1],默认是 0(完全不透明) 指定用该变量的值作为每个“条形”的标签, 默认SAS自动计算适当的值 绘制包含缺省值的条形; 设定要显示的极限线的类型:CLM(均值左右95%LIMITSTAT = 选项 的双侧置信区间);STDDEV(样本标准差);STDERR(标准误);
例1 巧克力生产商考虑是否增加 4 个新品种,公司找志愿者品尝它们的味道,得到数据(C:\\MyRawData\\Choc.dat),变量包括年龄组(A-成年;C-儿童)、喜欢吃的口味(注意每行有 6 个测试):
读入数据,用 PROC SGPLOT 过程步生成关于年龄段分组的条形图。 代码:
data chocolate;
infile 'c:\\MyRawData\\Choc.dat';
input AgeGroup $ FavoriteFlavor $ @@; run;
proc format;
value $AgeGp 'A' = 'Adult' 'C' = 'Child';
run;
* Bar chart for favorite flavor; proc sgplot data = chocolate;
vbar FavoriteFlavor / GROUP = AgeGroup GROUPDISPLAY = CLUSTER;
format AgeGroup $AgeGp.;
label FavoriteFlavor = 'Flavor of Chocolate'; title 'Favorite Chocolate Flavors by Age'; run;
运行结果:
注:上图是“簇型”(CLUSTER),若改为“堆叠型”(STACK)输出: