Matlab - 从boxplot中提取值

时间:2012-03-15 22:12:21

标签: matlab

我想从内置的boxplot函数中提取值。在A1中有三个额外的大值(1000000),而正确的最大值是273。

a = boxplot(A1)

a =

  173.0043
  174.0028
  175.0033
  176.0027
  177.0032
  178.0027
  179.0031

我试过这个,但我不知道这些价值是多少,这些不是异常值本身,也不是异常值指数。

findobj(gcf,'tag','Outliers');仅返回179.0031

如何从boxplot中提取异常值或其索引?

1 个答案:

答案 0 :(得分:9)

BOXPLOT返回不同图形对象的句柄数组。

默认参数(plotstyle设置为outline等)输出为7 x M数组句柄,其中M是boxplot组的数量,每个都有以下7个句柄:

  1. Upper Whisker
  2. 下层威士忌
  3. 上邻接值
  4. 较低的相邻值
  5. 中值
  6. 离群值
  7. 在不同的参数下,boxplot可能会返回不同数量的句柄,因此最好通过标记找到所需内容。

    如果此属性存在,要提取您必须访问特定对象的Data属性的数据。

    h = findobj(gcf,'tag','Outliers');
    
    xdata = get(h,'XData');
    ydata = get(h,'YData');