之前有一个类似的问题(how to prevent midpoints from extending),但没有回答我的问题。
我正在创建如下的直方图并将其输出到PNG文件:
ods graphics on / imagename = "histoOne" imagefmt = png reset=index border=off width=4in;
ods select where=(_name_ ? 'Histogr');
proc univariate data=myData noprint; *(WHERE=(sumStake < 250));
Title1;
var sumStake;
histogram sumStake / name='histogr' vminor=4 grid lgrid=34 endpoints=0 to 250 by 20 cfill=red;
*Omit the inset, because the stats refer to the reduced dataset;
INSET n (comma11.0) mean (5.2) median (5.2) std='Std Dev'(5.2) max='Max' (5.2) / pos = ne
header = 'Summary Statistics' cfill = ywh;
run;
ods graphics off;
我想显示直方图和摘要统计信息插入。但是,数据是如此偏斜,因此在X轴上显示sumStake的最大值是没有意义的。我想把X轴限制在250.
SAS不断扩展ENDPOINTS值。我怎么能抑制这个?
我不想使用(WHERE=(sumStake < 250));
过滤器作为计数,插图中的平均值,中位数和最大值将基于减少的样本,而不是整个样本,并且没有意义。
答案 0 :(得分:1)
您可能需要以某种方式更改数据,或以不同方式执行图表。 SAS中的直方图不允许以这种方式对数据进行太多讨论;你必须提前做。直方图主要用于显示数据是如何丢失的,所以对于“隐藏”某些数据的影响有点违反直觉 - 我理解你为什么要这样做,但它并不是直方图的主要目的,因此功能为何不是在SAS那里。
我认为PROC UNIVARIATE
无论如何都没有给你任何控制权的能力,所以你可能会失去插图。您可以在PROC SGPLOT
直方图中明确控制轴长度(在AXIS
中使用PROC SGPLOT
语句),但它们没有相同类型的插图 - 您可以制作一些东西,但是不是那么简单。它仍然会制作超大的分档,并且不会重新分配那些过度分箱的记录。
另一种选择,特别是如果你单独制作插图,将使用你已经“修复”的数据(右删失)进行SGPLOT
直方图(或条形图)并计算插入数据单独(在未经审查的数据上)。