如何根据数据范围本身自动调整分布中的 bin 宽度?当我使用分发平台时,默认情况下,bin 宽度总是很大,这无助于更好地了解分发。 我必须处理的数据以 maginutes(兆、毫、单位等)的顺序变化,因此用于所有直方图的固定 bin 不起作用。 同样在我需要处理的实际情况中,我有数百个测试,因此逐个调整图也不可行。 有没有办法让每个单独的图的 bin 宽度由数据范围决定? 例如,我想简单地获取范围并将其分成 100 个等份或 50 等份。因此无论单位如何,所有地块的外观都会有些统一,而无需单独调整它们。 附件是 3 个绘图示例,我希望默认设置是将 bin 宽度设置为数据范围的 1/100。
谢谢!
图形回复:如何根据数据范围本身自动调整分布中的 bin 宽度?你好@breino ,
从这里开始:
https://community.jmp.com/t5/JMP-Add-Ins/2D-Histograms/ta-p/377945
如果有帮助,请告诉我们。
回复:如何根据数据范围本身自动调整分布中的 bin 宽度?你好罗恩:
感谢您的建议。 不幸的是它不喜欢大量的测试,我尝试添加大约 30 个要绘制的测试,并给出了“无法添加项目:列表已经包含最大数量的项目”的错误。
我希望有一个通用设置来调整 bin 宽度,因为大多数分布都带有宽条,因此必须是关于如何确定它们有多宽的全局设置。
回复:如何根据数据范围本身自动调整分布中的 bin 宽度?您可以尝试编写脚本。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Students.jmp");
colList = {"height", "weight"};
dist = dt << Distribution(
Continuous Distribution(Column(:height)),
Continuous Distribution(Column(:weight))
);
wait(2);
rep_layer = Report(dist);
axisbox = rep_layer[axis box(1)];
For Each({val}, colList,
//some calculation for inc
newInc = Col Max(Column(dt, val)) - Col Min(Column(dt, val));
newInc = newInc/10;
cur_rep = rep_layer[OutlineBox(val)];
axisbox = cur_rep[axis box(1)];
axisbox << Inc(newInc);
);还有 Bin Span() 但我不确定在构建发行版后是否可以修改它。
回复:如何根据数据范围本身自动调整分布中的 bin 宽度?你好@breino
如何将其作为开发基础:
Open( "$SAMPLE_DATA/Big Class.jmp" );
Distribution(
Continuous Distribution( Column( :height ), Set Bin Width( (colmax(:height)-colmin(:height))/50 ) ),
Continuous Distribution( Column( :weight ), Set Bin Width( (colmax(:weight)-colmin(:weight))/100 ) )
);
回复:如何根据数据范围本身自动调整分布中的 bin 宽度?最有可能使用 Set Bin Width() 对我以前的代码进行改进@ron_horne .
循环很可能以更聪明的方式进行:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Students.jmp");
colList = {"height", "weight"};
dist = dt << Distribution(
Continuous Distribution(Column(:height)),
Continuous Distribution(Column(:weight))
);
wait(1);
For(i = 1, i <= N Items(colList), i++,
newInc = Col Max(Column(dt, colList[i])) - Col Min(Column(dt, colList[i]));
newInc = newInc/10;
dist[i] << Set Bin Width(newInc);
);