选择散点图中具有最多值的区域的限制

时间:2012-12-11 13:38:49

标签: matlab axes scatter

说我是否有散点图:

dat = [1+(5-1).*rand(1000,1);89;92];
dat2 = dat+0.2;
scatter(dat,dat2);

从图中可以看出,有两个点远远大于其余值。是否有一种方法可以获得大多数值所在区域的轴限制?

1 个答案:

答案 0 :(得分:3)

这取决于您对“多数”的定义,但对于此类任务,您通常应使用统计工具,例如meanstd

让我们假设大多数点位于与平均值相差一个标准偏差之内。根据这个逻辑,你需要找到x轴和y轴范围内的所有点:

xmaj = dat(abs(dat - mean(dat)) < std(dat));
ymaj = dat2(abs(dat2 - mean(dat2)) < std(dat2));

现在xmajymaj包含“大多数”点的坐标。要获得包含大多数点的区域的轴限制,只需执行:

xlims = [min(xmaj), max(xmaj)]
ylims = [min(ymaj), max(ymaj)]

对于您的示例,您应该这样:

xlims =

    1.0053    4.9969


ylims =

    1.2053    5.1969