Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SAS中绘制直方图和箱线图_Sas_Histogram_Boxplot - Fatal编程技术网

在SAS中绘制直方图和箱线图

在SAS中绘制直方图和箱线图,sas,histogram,boxplot,Sas,Histogram,Boxplot,我在sas中编写了以下代码,但没有得到结果 结果直方图为灰色,数据范围不符合我的规定!有什么问题 我也得到了以下警告:警告:中点=列表被扩展以容纳数据 颜色呢 axis1 order=(0 to 100000 by 50000); axis2 order=(0 to 100 by 5); run; proc capability data=HW2 noprint; histogram Mvisits/midpoints=0 to 98000 by 10000 haxis=axis1 cfill=

我在sas中编写了以下代码,但没有得到结果

结果直方图为灰色,数据范围不符合我的规定!有什么问题

我也得到了以下警告:警告:中点=列表被扩展以容纳数据

颜色呢

axis1 order=(0 to 100000 by 50000);
axis2 order=(0 to 100 by 5);
run;
proc capability data=HW2 noprint;
histogram Mvisits/midpoints=0 to 98000 by 10000
haxis=axis1
cfill=blue;
run;

我对箱线图也有同样的问题,例如,我得到了下面的图,我想改变距离,然后我可以更好地看到图,但我不能


以下是关于
proc单变量的
而不是
proc能力
,我无法访问SAS/QC进行测试,但《用户指南》为直方图语句显示了非常相似的语法。希望你能把它翻译回来

由于输出系统的原因,您的颜色似乎有问题。您的图形可能是通过ODS交付的,在这种情况下,cfill选项不适用(请参阅而不是传统的图形标签)

要更改ODS输出中直方图条的颜色,可以使用
proc template

proc template;
    define style styles.testStyle;
        parent = styles.htmlblue;
        style GraphDataDefault /
            color = green;
    end;
run;

ods listing style = styles.testStyle;

proc univariate data = sashelp.cars;
    histogram mpg_city;
run;
可以找到一个例子来解释这一点

或者,您可以使用
proc sgplot
创建直方图,对颜色进行更多控制,如下所示:

proc sgplot data = sashelp.cars;
    histogram  mpg_city / fillattrs = (color = red); 
run;
至于你关于截断直方图的问题。忽略极值并没有多大意义,因为它会给你一个错误的分布图像,这在某种程度上违背了直方图的目的。也就是说,你可以通过一些技巧来实现你的要求:

data tempData;
    set sashelp.cars;
    tempClass = 1;
run;

proc univariate data = tempData noprint;
    class tempClass;
    histogram mpg_city / maxnbin = 5 endpoints = 0 to 25 by 5;
run;
在上面的示例中,创建了一个虚拟类
tempClass
,然后使用
class
语句请求比较直方图
maxnbins
将限制仅在比较直方图中显示的箱子数量

您的另一个选择是在创建直方图之前排除(或限制)极端点,但这将导致频率计数/百分比/条形高度稍有错误

data tempData;
    set sashelp.cars;
    mpg_city = min(mpg_city, 20);
run;

proc univariate data = tempData noprint;
    histogram mpg_city / endpoints = 0 to 25 by 5;
run;
这是解决原始问题的一种可能方法(未经测试,因为没有SAS/QC或数据):

proc能力数据=HW2 noprint;
直方图Mvisits/
中点=0到300000乘以10000
没有
outhistogram=历史数据;
跑
proc sgplot data=历史数据;
vbar _MIDPT /
响应=\u OBSPCT\u
fillattrs=(颜色=蓝色);

其中_MIDPT u您有非常大的值,如果您对可视化典型值周围的数据分布感兴趣(例如,直方图为0-3000),则这两个图都将无效。在任何情况下,这个问题都是离题的,因为它是关于SAS编程的。可能重复感谢您的回答:)顺便问一下,我如何更改代码以使方框图更清晰?或者由于数据分布,箱线图异常!!!我建议您阅读文档以了解直方图语句,也可以阅读ODS和proc sgplot,从长远来看,了解系统的工作方式可能会节省您的时间。也就是说,我在上面添加了一种可能的方法;由于我没有SAS/QC或您的数据,因此未经测试。
proc capability data = HW2 noprint;
    histogram Mvisits / 
        midpoints = 0 to 300000 by 10000
        noplot 
        outhistogram = histData;
run;
proc sgplot data = histData;
    vbar _MIDPT_ / 
        response = _OBSPCT_ 
        fillattrs = (color = blue);
    where _MIDPT_ <= 100000;
run;